Silverlight忽略CurrencyGroupSeparator

时间:2011-04-19 14:00:10

标签: silverlight localization culture

Thread.CurrentThread.CurrentCulture = New CultureInfo("sv-SE")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("sv-SE")

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyGroupSeparator = " "
Thread.CurrentThread.CurrentUICulture.NumberFormat.CurrencyGroupSeparator = " "

我想做:

   <TextBlock Text={Binding decimalValue, StringFormat=c2}/>

正确设置文化,并添加瑞典货币符号“kr”。但是,不遵守组分隔符设置。即使我把它设置为“ - ”或任何它不起作用。

大问号?错误?

1 个答案:

答案 0 :(得分:0)

我不确定你是否能够解决这个问题,但是由于没有人回答,我会 对于初学者,我不确定您的支持代码是否与表示层在同一个线程中运行;可能不是,我相信Silverlight创建了自己的视觉线程。换句话说,设置线程范围CultureInfo无法解决您的问题。

至少有两种方法可以解决这个问题:
1.使用StringFormat属性进行播放以设置自定义格式 2.在支持代码中创建动态属性,为您格式化值。请找到这个不完美的例子:

public decimal Quote { get; set; }

// Formats value of Quote property
public string FormattedQuote
{
    get
    {
        CultureInfo swedishCulture = new CultureInfo("sv-SE");
        swedishCulture.NumberFormat.CurrencyGroupSeparator = " ";
        return Quote.ToString("c2", swedishCulture);
    }
}

在您的XAML代码中,您不需要指定格式,因此您只需执行此操作:

<TextBlock Name="textBlock1" Text="{Binding FormattedQuote}" DataContext="{Binding ElementName=textBlock1}" />