为什么绑定的 StringFormat 不使用当前区域性?

2023-11-24

我目前的文化是 ru-RU。我需要它将小数格式化为货币字符串。

decimal n = 111.22M;

n.ToString("C") will return "111,22р."

但是当我尝试使用绑定的 StringFormat 字段时,我得到“$111.22”结果

<TextBlock Text={Binding Number, StringFormat=C} />

默认情况下,WPF 将使用英语作为绑定的区域性StringFormat处理,而不是线程的当前文化。

您可以通过在应用程序的启动代码中添加以下内容来覆盖此设置:

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
    new FrameworkPropertyMetadata(      XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

有关详细信息,请参阅 Josh Smith 的文章创建国际化向导.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么绑定的 StringFormat 不使用当前区域性? 的相关文章

随机推荐