2 に答える
WP8 uses your Live ID payment profile region to select the market the phone uses and you cannot change this via a setting on the phone. I only happen to know this because my payment profile is set to Canada somehow (I'm from the US) and I am unable to change this via a setting on the phone.
However, back to the original question: your phone will always report the culture being used for in app purchases via System.Globalization.RegionInfo.CurrentRegion. Therefore, you can reliably get the correct currency code being used for in app purchases from:
var regionInfo = System.Globalization.RegionInfo.CurrentRegion;
var currencyCode = regionInfo.ISOCurrencySymbol;
In Windows Phone 8, changing the region on your device will change the marketplace you access.
For example, if I change the region on my phone from Australia to the US, I access the US store. Any purchases from that store, will be made in the local currency (assuming I have a payment method accepted in that region - ie. A US credit card).
So System Locale should be a suitable workaround for your purposes as unlike WP7 your market is not linked to the locale of the live id.