C# DataGridComboxColumn.TextProperty的绑定转换器
我试图使用绑定转换器将DataGridComboxColumn中显示的枚举转换为更友好的形式。但我得到了这个错误;无法转换值。我正在代码中应用绑定C# DataGridComboxColumn.TextProperty的绑定转换器,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我试图使用绑定转换器将DataGridComboxColumn中显示的枚举转换为更友好的形式。但我得到了这个错误;无法转换值。我正在代码中应用绑定 void ResultGrid_AutoGeneratingColumns(object sender, DataGridAutoGeneratingColumnEventArgs e) { if(e.PropertyType.IsEnum) { var En
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是否不为空。是的,我确定它不为空。实际上,它返回的字符串格式完全符合预期。但是绑定失败了