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”。但是,不遵守组分隔符设置。即使我把它设置为“ - ”或任何它不起作用。
大问号?错误?
答案 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}" />