DataGridViewCheckBoxColumn:如何在属性更改而不是验证时更新绑定的DataSource

Not*_*sxl 7 binding datagridview datagridviewcolumn winforms

我有一个绑定的BindingList作为DataGridView的数据源; 其中一个TSource属性绑定到DataGridViewCheckBoxColumn,但数据源不会在单击复选框时更新,而是在复选框本身的焦点丢失时更新.

我知道当DataSourceUpdateMode是"OnValidation"而不是"OnPropertyChanged"时,标准的WindowsForms绑定会发生类似的事情,但是如何使用DataGridViewCheckBoxColumn获得相同的结果呢?

该列定义如下:

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

            dataGridView.Columns.Add(column);
Run Code Online (Sandbox Code Playgroud)

Dav*_*all 10

你可以通过处理CurrentCellDirtyStateChanged事件来做到这一点DataGridView.

void dataGridView1_CurrentCellDirtyStateChanged(object sender,EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}
Run Code Online (Sandbox Code Playgroud)