Silverlight XAML StringFormat:打印一个空格为千位分隔符的数字

时间:2011-11-03 09:58:44

标签: silverlight xaml numbers string-formatting

我想格式化这样的数字:

100000000 => 100 000 000 -1500 => -1 500 -500 =>的 -500

目前我正在使用这种方法,但它对负值不起作用:

<TextBlock Text="{Binding Path=Value, StringFormat='### ### ##0'}" />

例如: -500 我得到 - 500 (' - '和'500'之间有两个空格)

任何提示?没有转换器可以做到这一点吗?

感谢。

1 个答案:

答案 0 :(得分:2)

在这种情况下,我认为你不能避免使用转换器。您当前使用的空格被视为文字,并且只是在这些字符位置注入最终数字。

正确的格式字符串实际上是“#,## 0”。 “,”实际上是一个指令,它将三位数组分组,并在它们之间放置一个分隔符串。实际的分隔符字符串使用取自xaml使用的NumberGroupSeparator类的NumberFormat的{​​{1}}字符串属性。通常这是来自“en-US”文化并且将是一个逗号。

无法指定要使用的CultureInfo自定义实例,因此您无法操纵CultureInfo。因此,您需要使用NumberGroupSeparator的实例。

此控制台应用代码生成适当的输出

IValueConverter