就我而言:
我有一个 TextBlock 绑定到 DateTime 类型的属性。
我希望它按照用户的区域设置显示。
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
我将 Language 属性设置为WPF XAML 绑定和 CurrentCulture 显示 https://stackoverflow.com/questions/991526/wpf-xaml-bindings-and-currentculture-display
says:
this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
但通过这行代码,它只是将文本显示为 CultureInfo 的默认格式
CurrentCulture 的 IetfLanguageTag 表示,而不是系统区域设置中选择的有效值表示:
(例如“de-DE”年月日使用而不是选择年-月-日)
有没有一种方法可以使 Binding 使用正确的格式,而无需在每个 Binding 上定义 ConverterCulture?
In code
string.Format("{0:d}",Date);
使用正确的文化设置。
edit:
另一种方法不能按预期工作(就像 this.Language = ... 一样):
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"
and
<Binding Source="{x:Static glob:CultureInfo.CurrentCulture}"
Path="IetfLanguageTag"
ConverterCulture="{x:Static glob:CultureInfo.InvariantCulture}" />