WPF datagrid - зафиксировать изменения в столбце флажка, как только будет изменено значение - PullRequest
7 голосов
/ 06 июня 2011

У меня есть эта маленькая проблема с сеткой данных.

В моей сетке у меня есть столбец флажка, который является единственным редактируемым столбцом.

Я ищу поведение сетки данных для обновления источника данных i, как только состояниефлажок меняется.Таким образом, пользователь устанавливает / снимает флажок> обновляется базовая таблица данных.

Поведение по умолчанию, по-видимому, обновляет источник, когда строка теряет фокус, требуя от пользователя нажатия клавиши или другого элемента управления для сохранения изменений.
Как я могу изменить это поведение?

Я не вижу никакого свойства для сетки данных, которая могла бы сделать это, и никакого события CheckChanged для DataGridCheckBoxColumn.

Ответы [ 2 ]

13 голосов
/ 06 июня 2011

Вам необходимо свойство UpdateSourceTrigger для привязки столбца.Вот быстрый пример, вы можете уточнить это и заполнить пробелы:

<DataGrid x:Name="someGrid">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Binding="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" />
    </DataGrid.Columns>
</DataGrid>
4 голосов
/ 06 июня 2011

DataGrid сам устанавливает UpdateSourceTrigger для всех столбцов (кроме столбцов шаблона) как LostFocus, и это не может быть переопределено. Отсюда необходимость использования шаблонов столбцов с флажком шаблона.

РЕДАКТИРОВАТЬ: это только один из длинного списка глупых ошибок вокруг столбцов DataGrid. Больше обрисовано в общих чертах здесь .

...