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

时间:2011-08-03 09:50:13

标签: c# .net wpf binding iformatprovider

方案

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

public int PersonNumber { get; set; }

此属性绑定到XAML中的Label:

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

正如您所看到的那样,它是一个数字,但格式应为0000.00.000。目前,我们在旧的WinForms应用程序中使用单独的IFormatProvider进行此类操作。

问题

  • 在WPF中可以这样格式化吗?
    • 如果是,我们首选的方法是仍然使用IFormatProvider,也可以吗?
    • 如果不是,有什么好的选择?

提前致谢!

4 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

您可以使用StringFormat

的属性Binding

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

答案 3 :(得分:1)

除了发布的答案外,还有转换方式。