Silverlight中的默认字符串格式

时间:2010-12-07 07:57:23

标签: silverlight cultureinfo currentculture currentuiculture

我有一个双,例如

double d = 4.323d;

我想在Silverlight 4应用程序的TextBlock中显示它,但显示应为:

4.32

我无法在绑定上更改StringFormat。

例外是如果数字是这样的:

double d2 = 4d;

然后它应该显示

4,而不是4.00

最糟糕的例外是它应该考虑到当前的UI文化,这意味着如果应用程序在美国部署,它应该使用.作为小数分隔符,而在欧洲它应该使用一个,(不是在英国,但你明白了......)

我可以将defaultformat设置为#.##如果我能够更改StringFormat,但我想通过CultureInfo

来实现

1 个答案:

答案 0 :(得分:5)

我现在假设你认为你不能在绑定中使用StringFormat,因为它不使用CultureInfo。在这种情况下,将这两个用法添加到您的用户控制代码后面: -

using System.Windows.Markup;
using System.Threading;

然后将其添加到其构造函数中: -

Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

现在,与StringFormat=#.##的绑定将使用适当的小数分隔符作为当前文化。