我目前的文化是ru-RU。我需要它将十进制格式化为货币字符串。
decimal n = 111.22M;
n.ToString("C") will return "111,22р."
但是当我尝试使用绑定的StringFormat字段时,我得到了一个" $ 111.22"结果
<TextBlock Text={Binding Number, StringFormat=C} />
答案 0 :(得分:4)
默认情况下,WPF将使用英语作为绑定StringFormat
处理的文化,而不是线程的当前文化。
您可以通过在应用程序的启动代码中添加以下内容来覆盖它:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
有关详细信息,请参阅Josh Smith关于Creating an Internationalized Wizard的文章。