DataGridComboBoxColumn не обновляет модель WPF

Я использую Datagrid в WPF и DataGridComboBoxColumn. Пожалуйста, найдите код ниже:

<DataGrid>...                 

    <DataGridComboBoxColumn Header="Category" Width="200"                                        
                                    SelectedValueBinding="{Binding SelectedCategory, UpdateSourceTrigger=PropertyChanged}"
                                    DisplayMemberPath="CategoryName"
                                    SelectedValuePath="CategoryID">
        <DataGridComboBoxColumn.ElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding CategoriesList}"></Setter>
            </Style>
        </DataGridComboBoxColumn.ElementStyle>
        <DataGridComboBoxColumn.EditingElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding CategoriesList}"></Setter>
            </Style>                        
        </DataGridComboBoxColumn.EditingElementStyle>
   </DataGridComboBoxColumn>

The model is as follows:

public CategoryModel SelectedCategory { get; set; }
public ObservableCollection<CategoryModel> CategoriesList
{
    get;
    set;
}

Теперь, когда я изменяю выделение в поле со списком, отображается красная рамка, неспособная зафиксировать изменения в источнике.


person Prabhanjan Kumar Mahapatra    schedule 20.02.2015    source источник


Ответы (1)


Это не правильно:

<DataGridComboBoxColumn Header="Category" Width="200"                                        
                                SelectedValueBinding="{Binding SelectedCategory, UpdateSourceTrigger=PropertyChanged}"
                                DisplayMemberPath="CategoryName">

удалите SelectedValuePath, иначе вы получите несоответствие типа. Сомневаюсь, что вам нужен UpdateSourceTrigger ... Попробуйте опустить.

person Florian Schmidinger    schedule 20.02.2015
comment
Да, я получаю несоответствие типа. Но в чем причина несоответствия типов. А как обновить модель при изменении выделения? - person Prabhanjan Kumar Mahapatra; 20.02.2015
comment
Привет, спасибо, Флориан, я только что получил решение, я заменил SelectedValueBinding на SelectedItemBinding, и он работает. - person Prabhanjan Kumar Mahapatra; 20.02.2015