使用StringFormat的WPF格式标签

我有一个WPF应用程序。 我有一些标签和一些数据网格绑定到一些公共属性。 其中一些属性是数值。

在datagrids中,我一直在使用下面的行来确保值只显示两个小数位,这是有效的。 但是,当我使用下面的同一行作为我的标签时,它似乎对显示没有影响,因为数字显示为大约9位小数。 我不明白为什么它适用于datagrid但不适用于标签?

StringFormat={}{0:0.##}  

更新的代码

   

对于label,您需要使用ContentStringFormat

  

原因

Label的Content属性是object类型, StringFormat仅在绑定属性为String类型时使用。

如果您使用TextBlock的Text属性尝试代码,它将与StringFormat因为Text属性的类型为string。

只是一个快速添加我想沿着这些线发布以防其他任何人进入它…我的应用程序使用本地化,因为它有多国支持,但我们也支持用户的系统设置。 我们注意到ContentStringFormat默认为您的UI文化。

这导致我们的一种forms出现问题,即在指定ContentStringFormat时,用户在Windows设置中配置的机器特定小数位不受尊重。

由于ContentPresenter只是采用字符串格式而没有通常在绑定中指定的转换器文化,这意味着如果英语是我当前的UI文化,则说: 0:N的格式将只返回两位小数, 即使我有5在我的Windows设置上指定的小数

在我们的例子中,我们应用了一些绑定覆盖来解决这个问题,但主要是想添加这些额外的信息以防其他人运行它;)