WPF绑定StringFormat不会改变输出[重复]

Posted

技术标签:

【中文标题】WPF绑定StringFormat不会改变输出[重复]【英文标题】:WPF Binding StringFormat doesn't change the output [duplicate] 【发布时间】:2017-03-03 08:39:33 【问题描述】:

我正在使用 C# 和 .NET Framework 4.6.1 开发 WPF。

我有这个数字 1010,我想把它显示为 1.010(我是西班牙人)。

为此,我修改了 XAML:

<Label x:Name="labelCounterCamera" Margin="5,2" 
Content="Binding CounterCamera, StringFormat=N0" />

但它显示的数字没有格式:1010。

CounterCamera 是:

public uint CounterCamera

    get  return counterCamera; 

    set
    
        if (!value.Equals(counterCamera))
        
            counterCamera = value;
            RaisePropertyChangedEvent("CounterCamera");
        
    

为什么 StringFormat 不起作用?我做错了什么?

【问题讨论】:

Label 内容的格式化需要另一种方法:***.com/questions/4206612/… 似乎StringFormat 仅在TargetType 的类型为string 时才有效,这里Content 属性的类型为object 我猜。 你需要转义字符串,所以:StringFormat=0:N. 【参考方案1】:

使用标签时必须使用 ContentStringformat

<Label x:Name="labelCounterCamera" Margin="5,2" 
   Content="Binding CounterCamera"
   ContentStringFormat="0:N" />

【讨论】:

【参考方案2】:

尝试在占位符标记内移动格式字符串。

Content="Binding CounterCamera, StringFormat=0:N"

0:N 而不是N0

【讨论】:

不,它不能编译。 您需要使用 StringFormat=0:N 进行转义 @apc 现在,它可以编译,但我没有得到任何格式。 检查即时窗口输出是否有错误,这应该使用 TextBlock 但是我不确定标签,所以请参阅blindmeis 答案

以上是关于WPF绑定StringFormat不会改变输出[重复]的主要内容,如果未能解决你的问题,请参考以下文章

WPF - 从 XAML 中的 StringFormat 绑定属性访问属性值

WPF 绑定和动态分配 StringFormat 属性

WPF 与 StringFormat 的绑定在 ToolTips 上不起作用

wpf Content数据绑定StringFormat起作用的原理和解决

WPF在XAML中Binding使用StringFormat属性

WPF StringFormat 格式化文本