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

标签 c# wpf xaml datagrid formatting

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

<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" />

最佳答案

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}}" />

关于c# - 将零值格式化为空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9518916/

相关文章:

c# - 顺序列表与另一个列表的顺序相同

c# - WPF AvalonEdit SQL xhsd 请求

wpf - 无法通过 DataTrigger 设置 ContentTemplate

wpf - 使用小数分隔符格式化 XAML 中的值?

c# - 如何访问 DataGrid.RowDetailsTemplate 中的控件?

c# - CUDA C# .Net 示例项目? VS2010

c# - SB_GETTEXT 不填充字符串生成器

c# - 访问两个不同程序集中存在的类时出错

c# - Xamarin Forms - 仅在图像而不是整个屏幕上使用捏合手势

c# - 将行为应用于 WPF DataGrid 行