propiedades ejemplos ejemplo checklist checkbox xtragrid

checkbox - ejemplos - La comprobación de casilla de verificación DevExpress XtraGrid no registrada a menos que el foco cambie



propiedades checkbox html (2)

De hecho, hay una manera más clara de hacerlo (funciona para todos los RepositoryItems), detallada en el sitio DevExpress . La idea es llamar al método GridView.PostEditor desde el controlador de eventos EditValueChanged de un elemento del repositorio para guardar inmediatamente el valor editado en la celda de la cuadrícula y la columna subyacente.

Tenemos un XtraGrid de datos en nuestro formulario de Windows. Una de las columnas es una casilla de verificación. El problema es el siguiente: cuando los usuarios marcan la casilla de verificación y hacen clic en el botón Aceptar, la casilla de verificación, mientras está visiblemente marcada, no se considera comprobada por la cuadrícula. Cuando hago esto (mientras hago un bucle en las filas):

isAllowed = Convert.ToBoolean(viewMain.GetRowCellValue(nRowCtr, "IsAllowed"))

Me vuelvo falso. PERO, si el usuario marca la casilla, y luego hace clic en otro lugar en el formulario o en otra fila en esta cuadrícula, quitando así el enfoque de la casilla marcada, el mismo código anterior devolverá True.

Cualquier idea sobre cómo solucionar este comportamiento sería muy apreciada.

Solución alternativa: con la configuración predeterminada, cuando los usuarios hacen clic en una celda para editarla, la celda entra en modo de edición, carga el control del editor (en este caso tengo un control de depósito CheckEdit) y cambia el valor del control (en este caso, estado verificado) . Si hago clic en otra fila u otro control, la celda sale del modo de edición y confirma el cambio en el elemento de datos. Pero si hago clic en un botón, mi cambio se pierde. La solución consiste en utilizar el evento CheckedChanged de CheckEdit para cerrar el editor:

Private Sub edCheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edCheck.CheckedChanged gridYears.FocusedView.CloseEditor() End Sub


Este código en el controlador de eventos CellValueChanging la vista resolvió el problema:

private void OnCellValueChanging(object sender, CellValueChangedEventArgs e) { _gridView.SetFocusedRowCellValue(_gridView.FocusedColumn, e.Value); }