我正在尝试使用绑定转换器将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();
}
}
这是我试图绑定的枚举
public enum TransactionTypes : int
{
Manual_Transaction = 1,
SubSystem_Transaction = 2
}
答案 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();
}
}
如果值不是枚举,您就有机会看到里面的内容。