2

例如,我有一个双倍的

double d = 4.323d;

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

4.32

而且我无法更改绑定上的 StringFormat 。

例外情况是,如果数字是这样的:

double d2 = 4d;

然后它应该显示

4,不是4.00

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

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

4

1 回答 1

5

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

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

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

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

现在绑定StringFormat=#.##将使用当前区域性的适当小数分隔符。

于 2010-12-07T09:30:36.590 回答