就我而言:
我有一个文本块绑定到日期时间类型的属性。我希望它按照用户的区域设置显示。
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
我将 Language 属性设置为WPF XAML Bindings 和 CurrentCulture Display 说:
this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
但是使用这行代码,它只是将文本显示为 CultureInfo 的默认格式,CurrentCulture 的 IetfLanguageTag 说,而不是系统区域设置中选择的有效值说:
(例如,对于“de-DE” ,使用dd.MM.yyyy代替选定的yyyy-MM-dd)
有没有办法 Binding 使用正确的格式而不在每个 Binding 上定义 ConverterCulture?
在代码中
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}" />