StringFormat似乎没有反应

时间:2011-10-31 12:52:35

标签: c# .net wpf

我的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;
        }
}

3 个答案:

答案 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}"/>