0

设想

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

public int PersonNumber { get; set; }

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

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

如您所见,它是一个数字,但格式应为 0000.00.000。目前,我们在旧的 WinForms 应用程序中为此类事情使用单独的 IFormatProvider。

问题

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

提前致谢!

4

4 回答 4

4

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

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

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

于 2011-08-03T09:57:28.203 回答
3

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

public int PersonNumber { get; set; }
public string PersonNumberText { get { return ... } }
于 2011-08-03T10:34:57.170 回答
1

您可以使用以下StringFormat属性Binding

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

于 2011-08-03T09:53:39.297 回答
1

除了发布的答案之外,始终有可用的转换器方式。

于 2011-08-03T10:03:09.123 回答