I too couldn't wrap my head around this, as there is no mention of it in the documentation whatsoever. I also tried every single thing I could google and in the end, I figured it out by chance.
It's quite simple, really:
GamePadState padState = GamePad.GetState(PlayerIndex.One);
if (padState.Buttons.Back == ButtonState.Pressed) {
// Do your stuff
}
BUT!
I had some major issues with it for what appeared to be two incomprehensibly related reasons: firstly, be sure to call this in your update as soon as you can. Calling it on the end of my update method made it work only sometimes (probably for some other reason, but I couldn't figure it out).
And secondly, keep one global instance of GamePadState
for use in all classes that might have some control logic - I had two classes that registered control (with their own GamePadState
instances) and while one did register the back button, the other didn't - and when I "paused" the update of the first one, the second one started to register it. Beats me.