DataGridComboboxColumn绑定转换器无法正常工作



参考我的另一个问题:

我已经这个datagridcomboxcolumn:

<DataGridComboBoxColumn Header="Master" SelectedItemBinding="{Binding MasterId}" SelectedValueBinding="{Binding Id}" DisplayMemberPath="Id" ItemsSource="{Binding Data.Masters, Converter={converters:SimpleComboItemConverter}, Source={StaticResource proxy}}" />

我为试图将值保存到行时引起的运行时错误创建了此ivalueconverter。

[ValueConversion(typeof(string), typeof(SimpleComboItem<>))]
public class SimpleComboItemConverter : MarkupExtension, IValueConverter
{
    public static SimpleComboItemConverter converter;
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        if (null == converter)
        {
            converter = new SimpleComboItemConverter();
        }
        return converter;
    }
}

但是,当内部调试时,转换方法具有价值的iEnumerable对象,而不是stringSimpleComboBoxItem<>

SimpleComboboxItem类它非常简单,并且列中的ComboBox显示正确的值:

public class SimpleComboItem<T>
{
    public T Value { get; set; }
    public string Text { get; set; }
}

我在做什么错?

问题在XAML中,您将ID映射为项目。您必须使用选定的valuebinding而不是selecteditembinding。

最新更新