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