Silverlight中的默认字符串格式

Sna*_*ake 2 silverlight cultureinfo currentculture currentuiculture

例如,我有一个双倍

double d = 4.323d;
Run Code Online (Sandbox Code Playgroud)

我想在Silverlight 4应用程序的TextBlock中显示它,但显示应该是这样的:

4.32

我无法在绑定上更改StringFormat.

唯一的例外是,如果数字是这样的:

double d2 = 4d;
Run Code Online (Sandbox Code Playgroud)

然后它应该显示

4不是4.00.

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

我可以将defaultformat设置为#.##IF我能够更改StringFormat,但我想通过CultureInfo来实现

Ant*_*nes 5

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

using System.Windows.Markup;
using System.Threading;
Run Code Online (Sandbox Code Playgroud)

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

Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
Run Code Online (Sandbox Code Playgroud)

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