我有一个双,例如
double d = 4.323d;
我想在Silverlight 4应用程序的TextBlock中显示它,但显示应为:
4.32
我无法在绑定上更改StringFormat。
例外是如果数字是这样的:
double d2 = 4d;
然后它应该显示
4
,而不是4.00
。
最糟糕的例外是它应该考虑到当前的UI文化,这意味着如果应用程序在美国部署,它应该使用.
作为小数分隔符,而在欧洲它应该使用一个,
(不是在英国,但你明白了......)
我可以将defaultformat设置为#.##
如果我能够更改StringFormat,但我想通过CultureInfo
答案 0 :(得分:5)
我现在假设你认为你不能在绑定中使用StringFormat,因为它不使用CultureInfo
。在这种情况下,将这两个用法添加到您的用户控制代码后面: -
using System.Windows.Markup;
using System.Threading;
然后将其添加到其构造函数中: -
Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
现在,与StringFormat=#.##
的绑定将使用适当的小数分隔符作为当前文化。