有任何内置的格式化WPF绑定的方法吗

本文关键字:绑定 方法 WPF 格式化 任何 内置 | 更新日期: 2023-09-27 18:04:26

场景

我似乎找不到使用IFormatProvider格式化WPF中绑定的方法。目前,我的数据源上有一个属性:

public int PersonNumber { get; set; }

此属性绑定到XAML中的标签:

<Label Content="{Binding Path=PersonNumber}" />

正如你所看到的,这是一个数字,但格式应该像0000.0000。目前,我们在旧的WinForms应用程序中使用了一个单独的IFormatProvider来处理这些事情。

问题

  • 这样的格式在WPF中可能吗?
    • 如果是,我们的首选方式是仍然使用IFormatProvider,是否可能
    • 如果没有,什么是好的替代方案

提前感谢!

有任何内置的格式化WPF绑定的方法吗

您正在寻找ContentStringFormat属性,该属性位于包括Label在内的所有ContentControl子体上。

<Label Content="{Binding PersonNumber}" ContentStringFormat="000" />

不过,我不确定WPF的格式化是否可以使用IFormatProvider。

为了完成,您只需在ViewModel中添加一个String属性即可在C#中获得完全控制:

public int PersonNumber { get; set; }
public string PersonNumberText { get { return ... } }

您可以使用Binding 的属性StringFormat

很好的例子:http://blogs.msdn.com/b/mikehillberg/archive/2008/05/29/trying-out-binding-stringformat.aspx

除了公布的答案外,还有转换器的方法。