8

假设我有一个号码1234567.89。该数字显示在 WPF TextBlock 中。我正在尝试将StringFormat属性应用于属性,Text以便数字显示如下:

1.234.567,89

如您所见,千位和小数点分隔符与不变的区域性规范相反。

我尝试为 设置许多组合StringFormat,但没有成功。这是我想出的最新的:

Text="{Binding SomeBinding, StringFormat={}{0:#'.'##0','00}}"

但是输出不正确。此外,使用N2或改变文化不是一种选择。如果可能的话,我想避免使用转换器。

那么,有没有办法通过 XAML 更改默认分隔符?

4

1 回答 1

12

你不必改变文化。只需String.Format与指定的文化一起使用(de-DE 应该没问题):

string output = String.Format(new CultureInfo("de-DE"), "{0:N}", yourDoubleValue);

输出:9.164,32

如果您想在 XAML 中执行此操作,您可以尝试:

Text="{Binding SomeBinding, StringFormat={}{0:N}, ConverterCulture=de-DE}"
于 2013-02-21T10:57:12.690 回答