方案
我似乎找不到使用IFormatProvider在WPF中格式化绑定的方法。目前我在我的数据源上有一个属性:
public int PersonNumber { get; set; }
此属性绑定到XAML中的Label:
<Label Content="{Binding Path=PersonNumber}" />
正如您所看到的那样,它是一个数字,但格式应为0000.00.000。目前,我们在旧的WinForms应用程序中使用单独的IFormatProvider进行此类操作。
问题
提前致谢!
答案 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)
除了发布的答案外,还有转换方式。