Это мой класс, который реализует 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}}" />