Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGridComboxColumn.TextProperty的绑定转换器_C#_Wpf_Wpfdatagrid - Fatal编程技术网

C# DataGridComboxColumn.TextProperty的绑定转换器

C# DataGridComboxColumn.TextProperty的绑定转换器,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我试图使用绑定转换器将DataGridComboxColumn中显示的枚举转换为更友好的形式。但我得到了这个错误;无法转换值。我正在代码中应用绑定 void ResultGrid_AutoGeneratingColumns(object sender, DataGridAutoGeneratingColumnEventArgs e) { if(e.PropertyType.IsEnum) { var En

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

 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();
            }
        }
这是我试图绑定的枚举

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

我猜列中的值不是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();
    }
}

如果值不是enum,您就有机会查看其中的内容。

可能存在@Greg的重复项enum绑定工作正常。我想问的是为什么绑定转换器不工作。你在哪里和什么时候收到这个错误?这个错误是从绑定引擎抛出的;检查上面的编辑绑定的来源是什么?此外,TextBinding似乎只能更改所选项目的文本,当下拉时,用户仍然可以看到带有下划线的枚举值的丑陋/不友好文本。不,我确定这是一个枚举。我已经通过了转换器代码,我确信转换器可以工作。嗯。。。请检查valie是否不为空。是的,我确定它不为空。实际上,它返回的字符串格式完全符合预期。但是绑定失败了