自定义NumberFormat不起作用

时间:2013-10-22 16:11:11

标签: c# wpf

我想更改我的应用程序显示货币的方式。

在我的Window的构造函数中,我有以下代码:

CultureInfo cultureInfo = new CultureInfo("en-US");
cultureInfo.NumberFormat = new NumberFormatInfo { 
    CurrencyDecimalSeparator = ",", 
    CurrencySymbol="§"};
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;

XAML是:

<TextBox Text="{Binding Path=CurrencyValue, Mode=TwoWay, StringFormat=C}" />

但这不会改变默认视图。

2 个答案:

答案 0 :(得分:1)

<TextBox Text="{Binding Path=CurrencyValue, Mode=TwoWay, StringFormat='§ \{0:n2\}'}" />

答案 1 :(得分:0)

Wpf / silverlight绑定不尊重线程当前文化设置。您需要手动设置语言。

尝试以这种方式设置根控件的语言:

rootControl.Language = XmlLanguage.GetLanguage(cultureInfo.IetfLanguageTag);