5

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

decimal n = 111.22M;

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

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

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

1 回答 1

5

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

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

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

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

于 2012-10-17T00:57:59.443 回答