我的xaml中有以下绑定,我可以看到显示的是double值,但StringFormat
完全被忽略了。
<Label Content="{Binding ByteCount, StringFormat=n}"/>
ByteCount
属性的类型为double。我甚至把它改成了字符串,它仍然不起作用。
请问可能是什么原因?
更新
public double ByteCount
{
get
{
return CloneHelper.GetSize(this);
}
}
public static class CloneHelper
{
public static double GetSize(BookSetViewModel book)
{
.....
return total;
}
}
答案 0 :(得分:6)
WPF的Label
实际上有一个ContentStringFormat
属性,它会覆盖任何绑定的StringFormat
设置ContentStringFormat
而不是
<Label Content="{Binding ByteCount}" ContentStringFormat="n" />
答案 1 :(得分:0)
StringFormat
属性具有必须使用的特殊语法。
对于您的示例,您应该使用此代码段。
<Label Content="{Binding ByteCount, StringFormat={}{0:n}}" />
Here's指向StringFormat属性的MSDN页面的链接。
答案 2 :(得分:0)
不知道是什么原因,可能是因为目标类型(对于标签它是对象),但它适用于TextBlock:
<TextBlock Text="{Binding ByteCount, StringFormat=n}"/>