WPF绑定字符串格式问题

WPF绑定字符串格式问题,wpf,binding,formatting,Wpf,Binding,Formatting,这可能很简单,但我试图从XML中的元素中获取值,并将其放入格式为小数点后3位的DataGridTextColumn中,但我无法使其工作…它只是将其保留在20左右的未格式化状态。这是我正在使用的线路。我做错了什么 <DataGridTextColumn Header="Avg" Binding="{Binding Path=Element[avg].Value, StringFormat=0:0.###}"></DataGridTextColumn> 您需要稍微更改字符串

这可能很简单,但我试图从XML中的元素中获取值,并将其放入格式为小数点后3位的DataGridTextColumn中,但我无法使其工作…它只是将其保留在20左右的未格式化状态。这是我正在使用的线路。我做错了什么

<DataGridTextColumn Header="Avg" Binding="{Binding Path=Element[avg].Value, StringFormat=0:0.###}"></DataGridTextColumn>

您需要稍微更改字符串格式规范。这应该起作用:

<DataGridTextColumn Header="Avg" 
    Binding="{Binding Path=Element[avg].Value, StringFormat={}{0:0.###}}">


请注意,
{}
在开头是必需的,因为
{
导致StringFormat说明符的第一部分被视为标记扩展。

事实上,此解决方案也会发生同样的情况……它仍然未格式化。@novacara:它被视为什么类型?是int值还是字符串?如果是,格式字符串将不起作用,您需要使用IValueConverter进行转换它是一个双精度或十进制值。它可能被视为一个字符串。有没有办法在xml中指定数据类型,或者是我唯一的选择来创建一个实现IValueConverter的类?@novacara:value始终是一个字符串:您需要将其转换为更有意义的值,或者使用IValueConverter将其更改为双精度值。后者可能是最好的,因为你可以在任何地方重用它……好的,谢谢你在正确的方向上的推动。我对XML和WPF都是新手。