- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
以我为例:
我有一个 TextBlock 绑定(bind)到 DateTime 类型的属性。我希望它按照用户的区域设置显示。
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
我将语言属性设置为 WPF XAML Bindings and 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}" />
最佳答案
您可以创建绑定(bind)的子类(例如 CultureAwareBinding),它会在创建时自动将 ConverterCulture 设置为当前文化。
这不是一个完美的解决方案,但它可能是唯一的解决方案,因为追溯强制绑定(bind)尊重区域性可能会破坏 WPF 中依赖于此行为的其他代码。
如果您需要更多帮助,请告诉我!
关于c# - 在 WPF 绑定(bind)中使用 "real"CultureInfo.CurrentCulture,而不是 IetfLanguageTag 中的 CultureInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831455/
以我为例: 我有一个 TextBlock 绑定(bind)到 DateTime 类型的属性。我希望它按照用户的区域设置显示。 我将语言属性设置为 WPF XAML Bindings and Curr
我是一名优秀的程序员,十分优秀!