7

DataGridView のデータ ソースとしてバインドされた BindingList があります。TSource プロパティの 1 つが DataGridViewCheckBoxColumn にバインドされていますが、チェックボックスがクリックされたときではなく、チェックボックス自体のフォーカスが失われたときにデータ ソースが更新されます。

DataSourceUpdateMode が "OnPropertyChanged" ではなく "OnValidation" の場合、標準の WindowsForms バインディングで同様のことが起こることはわかっていますが、DataGridViewCheckBoxColumn で同じ結果を得るにはどうすればよいですか?

列は次のように定義されます。

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

            dataGridView.Columns.Add(column);
4

1 に答える 1

10

CurrentCellDirtyStateChangedのイベントを処理することでこれを行うことができますDataGridView

void dataGridView1_CurrentCellDirtyStateChanged(object sender,EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}
于 2011-06-24T14:52:56.313 に答える