2010-10-22 67 views
7

Tengo un DataGridView con una columna DataGridViewCheckBoxColumn, que está enlazado a una lista de datos. El problema es que la propiedad booleana de datos para esta casilla de verificación no se actualiza cuando la casilla de verificación está marcada/desmarcada, sino después del evento CellLeave, en otras palabras, después de que la celda pierde el foco. Quiero que esta propiedad se actualice inmediatamente después de marcar/desmarcar. Hay un evento CurrentCellDirtyStateChanged que se activa justo después de que se active/desactive la marca, por lo que puedo usarlo para actualizar la propiedad manualmente. ¿Hay una mejor manera de hacer esto?DataGridView con problema de celda CheckBox

Respuesta

13

Puede escuchar el CurrentCellDirtyStateChanged evento y la fuerza confirmar el cambio:

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

Gracias! Eso es exactamente eso. – Max

Cuestiones relacionadas