我想格式化这样的数字:
100000000 => 100 000 000 或 -1500 => -1 500 或 -500 =>的 -500
目前我正在使用这种方法,但它对负值不起作用:
<TextBlock Text="{Binding Path=Value, StringFormat='### ### ##0'}" />
例如: -500 我得到 - 500 (' - '和'500'之间有两个空格)
任何提示?没有转换器可以做到这一点吗?
感谢。
答案 0 :(得分:2)
在这种情况下,我认为你不能避免使用转换器。您当前使用的空格被视为文字,并且只是在这些字符位置注入最终数字。
正确的格式字符串实际上是“#,## 0”。 “,”实际上是一个指令,它将三位数组分组,并在它们之间放置一个分隔符串。实际的分隔符字符串使用取自xaml使用的NumberGroupSeparator
类的NumberFormat
的{{1}}字符串属性。通常这是来自“en-US”文化并且将是一个逗号。
无法指定要使用的CultureInfo
自定义实例,因此您无法操纵CultureInfo
。因此,您需要使用NumberGroupSeparator
的实例。
此控制台应用代码生成适当的输出
IValueConverter