В моем случае:
У меня есть привязка TextBlock к свойству типа DateTime.Я хочу, чтобы он отображался в соответствии с региональными настройками пользователя.
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
Я устанавливаю свойство языка как Привязки WPF XAML и отображение CurrentCulture :
this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
Но с этой строкой кода он просто отображает текст в качестве формата по умолчанию CultureInfo с IetfLanguageTag из CurrentCulture, а не в качестве действующего значения, выбранного в настройках региона системы:
(например, дляDE " дд.мм.гггг используется вместо выбранного гггг-ММ-дд )
Есть ли способ привязкииспользует правильный формат без определения ConverterCulture для каждой привязки?
В коде
string.Format("{0:d}",Date);
используются правильные настройки культуры.
edit:
другой способ, который не работает должным образом (как это. Язык = ... делает):
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"
и
<Binding Source="{x:Static glob:CultureInfo.CurrentCulture}"
Path="IetfLanguageTag"
ConverterCulture="{x:Static glob:CultureInfo.InvariantCulture}" />