将零值格式化为空字符串?

时间:2012-03-01 15:27:31

标签: c# wpf xaml datagrid formatting

我在第一次涉足WPF字符串格式时遇到了困难。我希望能够在基础值为零时使用空字符串格式化数据网格中的文本框列,并将所有其他值格式化为0.000。但是,我的XAML似乎不能胜任工作,因为它显示所有值的空白,而不仅仅是零:

<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat='{}{0.000;; }'" Width="Auto" />

我正在使用here描述的分号运算符,并在第二个分号后面添加了一个空格来获取空字符串。

非常感谢!

更新

这就是诀窍:

<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat=0.000;;#}" Width="Auto" />

1 个答案:

答案 0 :(得分:3)

示例IValueConverter

   [ValueConversion(typeof(string), typeof(string))]
    public class StringToFeetAndInches : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string str = value as string;
            if (string.IsNullOrEmpty(str)) return str;
            str = str.Insert(1, "'");
            str = str + "\"";
            return str; 
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return 0;
        }
    } 

<UserControl.Resources>
<NS:StringToFeetAndInches x:Key="cStringToFeetAndInches"/>
</UserControl.Resource> 

<TextBlock Text="{Binding Path=Height, Converter={StaticResource cStringToFeetAndInches}}" />