2011-06-24 22 views
6

DataGridViewのデータソースとしてBindingListをバインドしました。 TSourceプロパティの1つがDataGridViewCheckBoxColumnにバインドされますが、データソースは、チェックボックスのクリックが発生したときではなく、チェックボックス自体のフォーカスが失われたときに更新されます。DataGridViewCheckBoxColumn:バインドされたDataSourceを、検証時ではなく変更した場合に更新する方法

DataSourceUpdateModeが "OnPropertyChanged"ではなく "OnValidation"の場合、標準のWindowsフォームバインドで同様のことが起こることは知っていますが、DataGridViewCheckBoxColumnでどのように同じ結果を得ることができますか?次のように

列が定義されています

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

      dataGridView.Columns.Add(column); 

答えて

9

あなたはDataGridViewCurrentCellDirtyStateChangedイベントを処理することにより、これを行うことができます。

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

ありがとうございます。 – Notoriousxl

関連する問題