DataGridComboBoxColumn.TextProperty的绑定转换器

时间:2014-07-23 05:37:37

标签: c# wpf wpfdatagrid

我正在尝试使用绑定转换器将DataGridComboBoxColumn中显示的枚举转换为更友好的形式。但是我得到了这个错误;价值''无法转换。我正在代码中应用绑定。

 void ResultGrid_AutoGeneratingColumns(object sender, DataGridAutoGeneratingColumnEventArgs e)
        {

            if(e.PropertyType.IsEnum)
          {
              var EnumColumn = e.Column as DataGridComboBoxColumn;
              EnumColumn.TextBinding = (new Binding(e.PropertyName) { Converter = new EnumConverter() }) ;
           }

        }

这是我的转换器

 public class EnumConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                String name = Enum.GetName(value.GetType(), value).Replace('_', ' ');
                return name;
            }

            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }

enter image description here

这是我试图绑定的枚举

 public enum TransactionTypes : int
    {
        Manual_Transaction = 1,
        SubSystem_Transaction = 2
    }

1 个答案:

答案 0 :(得分:0)

我猜列中的值不是Enum。

我建议使用以下代码:

public class EnumConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo    
    {
       String name = value.ToString().Replace('_', ' ');
       return name;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

如果值不是枚举,您就有机会看到里面的内容。