我有一个绑定到可以为空的枚举的ComboBox。 ItemSource是枚举值的集合。 IValueConverter用于将枚举值转换为字符串以供显示。最初,SelectedItem的值为null。
除下列情况外,一切正常。支持模型可以重置,基本上可以为空的enum属性分配其原始值null。发生这种情况时,由于某种原因,IValue转换器将被调用一个空字符串。为什么用空字符串而不是空值来调用它?
奇怪的是,IValueConverter.Convert方法永远不会在初始空值上被调用。
编辑:
ComboBox定义如下:
SELECT Customers.userid, Orders.userid
FROM Customers
LEFT JOIN ORDERS
ON Customers.userid=orders.USER_ID
源定义为:
<ComboBox ItemsSource="{Binding Source={StaticResource MyList}}" SelectedItem="{Binding MyProperty}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=., Converter={StaticResource EnumToStringConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
支持属性刚定义为MyEnum?