2011-06-24 15 views
6

Tengo un BindingList enlazado como el origen de datos de un DataGridView; una de las propiedades de TSource está vinculada a una DataGridViewCheckBoxColumn, pero la fuente de datos se actualiza no cuando se hace clic en la casilla de verificación, sino cuando se pierde el foco en la casilla de verificación.DataGridViewCheckBoxColumn: cómo actualizar DataSource enlazado en la propiedad modificada en lugar de la validación

Sé que ocurre algo similar en un enlace estándar de WindowsForms cuando DataSourceUpdateMode es "OnValidation" en lugar de "OnPropertyChanged", pero ¿cómo puedo obtener los mismos resultados con un DataGridViewCheckBoxColumn?

La columna se define de la siguiente manera:

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

      dataGridView.Columns.Add(column); 

Respuesta

9

Usted puede hacer esto mediante la manipulación del evento CurrentCellDirtyStateChanged del DataGridView.

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

Funciona, gracias. – Notoriousxl

Cuestiones relacionadas