DataGridViewCheckBoxColumn: как обновить связанный DataSource для свойства, измененного вместо проверки - PullRequest
7 голосов
/ 24 июня 2011

У меня есть BindingList, связанный как источник данных DataGridView;одно из свойств TSource привязано к DataGridViewCheckBoxColumn, но источник данных обновляется не тогда, когда происходит щелчок по флажку, а когда теряется фокус на самом флажке.

Я знаю, что нечто подобное происходит настандартная привязка WindowsForms, когда DataSourceUpdateMode имеет значение «OnValidation» вместо «OnPropertyChanged», но как получить те же результаты с DataGridViewCheckBoxColumn?

Столбец определен следующим образом:

            DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
            column.DataPropertyName = "MyProperty";
            column.HeaderText = "Title";

            dataGridView.Columns.Add(column);

1 Ответ

10 голосов
/ 24 июня 2011

Вы можете сделать это, обработав CurrentCellDirtyStateChanged событие DataGridView.

void dataGridView1_CurrentCellDirtyStateChanged(object sender,EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}
...