用转换器绑定枚举。不调用转换器方法

时间:2012-01-18 15:46:24

标签: wpf enums type-conversion

我有以下转换器:

public class EnumDescriptionConverter : IValueConverter
{       

    public object Convert(object value, Type targetType, object parameter,
                          CultureInfo culture)
    {                        
            var enumValue = (MyEnum)value;

            //GetDescription is method to read attribute string value.
            return enumValue.GetDescription();            
    }        
}

我有一个列表框:

<ListBoxItem Content=
"{Binding {x:Static Enums:MyEnum.Video}, Converter={StaticResource DescriptionConverter}}"/>

当我运行它时,我得到异常“无法将MyEnum强制转换为字符串”。转换器内的断点不会被触发。

有什么问题?

1 个答案:

答案 0 :(得分:4)

您正在尝试将Enum绑定到Binding的Path属性

指定Enum是Source属性而不是

<ListBoxItem Content="{Binding
    Source={x:Static Enums:MyEnum.Video}, 
    Converter={StaticResource DescriptionConverter}}"/>