В моем случае:Использования «реальное» CultureInfo.CurrentCulture в WPF Binding, не CultureInfo из IetfLanguageTag
У меня есть TextBlock Привязка к свойству типа DateTime. Я хочу, чтобы он отображался в качестве региональных настроек пользователя.
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
Я устанавливаю язык собственность как WPF XAML Bindings and CurrentCulture Display говорит:
this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
Но с этой строки кода он просто отображает текст в формате по умолчанию CultureInfo с IetfLanguageTag из CurrentCulture говорит, а не как эффективное значение, выбранное в настройках области системы, указано:
(например, для «de-DE» dd.MM.yyyy используется вместо выбора ред гггг-ММ-дд)
Есть ли способ 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}" />
проверьте следующее: http://stackoverflow.com/questions/2764615/wpf-stringformat-0c-showing-as-dollars –
@Pavlo: ответ на этот вопрос также использует IetfLanguageTag для получения CultureInfo. –