为什么绑定的StringFormat没有使用当前的文化?
我目前的文化是ru-RU。 我需要它将十进制格式化为货币字符串。
decimal n = 111.22M; n.ToString("C") will return "111,22р."
但是当我尝试使用绑定的StringFormat字段时,我得到一个“$ 111.22”的结果
默认情况下,WPF将使用英语作为绑定StringFormat
处理的文化,而不是线程的当前文化。
您可以通过在应用程序的启动代码中添加以下内容来覆盖它:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
有关详细信息,请参阅Josh Smith关于创建国际化向导的文章。