Почему делает эту строку кода
<TextBlock Text="{Binding Net, StringFormat=c}"/>
Произведите результат как $xx.xx, когда все мои региональные настройки будут установлены на Великобританию. Я ожидаю, что это произведет его как £xx.xx. Какие-либо идеи? Я попробовал различные изменения stringformat включая StringFormat = {} {0:C}, но все еще получаю тот же результат.
Спасибо за взгляд.
Я не уверен, что это было исправлено в .NET 4, но WPF никогда не подбирал текущую культуру при рендеринге таких вещей, как валюта или даты. Я считаю это огромным упущением, но, к счастью, оно легко исправляется.
В классе App:
protected override void OnStartup(StartupEventArgs e)
{
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(
CultureInfo.CurrentCulture.IetfLanguageTag)));
base.OnStartup(e);
}
Смотрите этот замечательный пост для получения дополнительной информации.