WPF StringFormat = {0:C} показывающий долларами

Почему делает эту строку кода

<TextBlock Text="{Binding Net, StringFormat=c}"/>

Произведите результат как $xx.xx, когда все мои региональные настройки будут установлены на Великобританию. Я ожидаю, что это произведет его как £xx.xx. Какие-либо идеи? Я попробовал различные изменения stringformat включая StringFormat = {} {0:C}, но все еще получаю тот же результат.

Спасибо за взгляд.

44
задан Coesy 4 May 2010 в 10:52
поделиться

1 ответ

Я не уверен, что это было исправлено в .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);
 }

Смотрите этот замечательный пост для получения дополнительной информации.

69
ответ дан 26 November 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: