这是我实现 IValueConverter 的类:
[ValueConversion(typeof(int), typeof(Priority))]
public class PriorityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (Priority) (int) value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
这行代码似乎抛出了一个 InvalidCastException:
return (Priority) (int) value;
(优先级是枚举)我在方法的开头放置了一个断点,“value”的值是 int:4 所以我不知道为什么会抛出这个异常。以下是资源(其中 app_data="clr-namespace:AssignmentOrganizer.App_Data"):
<app_data:PriorityConverter x:Key="PriorityConverter" />
<app_data:KindConverter x:Key="KindConverter" />
这是实现:
<gridview:GridViewDataColumn Header="Priority" Width="100" DataMemberBinding="{Binding Priority, Converter={StaticResource PriorityConverter}}" />
<gridview:GridViewDataColumn Header="Kind" Width="100" DataMemberBinding="{Binding Kind, Converter={StaticResource KindConverter}}" />