with form example data .net data-binding forms datagridview datatable

.net - form - Desencadenar actualización en DataTable vinculado a DataGridView



datagridview datasource datatable (3)

En mi aplicación .NET / Forms tengo un DataGridView que está vinculado a una DataTable. El usuario selecciona una fila de DataGridView haciendo doble clic y realiza alguna interacción con la aplicación. Después de eso, el contenido de la fila se actualiza programáticamente.

Cuando el usuario selecciona una nueva fila, los cambios en el anterior se propagan automágicamente al DataTable por el marco. ¿Cómo puedo activar esta actualización desde mi código para que el usuario no tenga que seleccionar una nueva fila?


Aquí está el proceso para aclarar esto:

  1. fila de doubleclicks del usuario
  2. la aplicación recupera los datos de db, procesa los datos recuperados y rellena los controles en la misma forma que DataGridView
  3. el usuario interactúa con los controles y finalmente presiona el botón Aplicar en el mismo formulario
  4. la aplicación procesa el estado de los controles, escribe datos en db y escribe datos en DataGridView

  5. SI el usuario mueve la selección en DataGridView

  6. ENTONCES los cambios se propagan a la DataTable encuadernada

Me gustaría activar 6 al instante después de modificar DataGridView desde mi código.


Supongo que depende de qué desencadena la actualización, si está en una rutina de validación, simplemente puede llamarla cuando el usuario haga clic en Aceptar al editar los datos. Su pregunta es vaga, sería más fácil responder con más información. ¿Qué es esta interacción? ¿Es un diálogo? ¿Qué actualiza realmente los datos?


Simplemente tuve el mismo problema y encontré la respuesta aquí :

Cuando el usuario navega fuera de la fila, el control confirma todos los cambios de fila. El usuario también puede presionar CTRL + ENTRAR para confirmar los cambios de fila sin salir de la fila. Para confirmar cambios de fila mediante programación, llame al método Validate del formulario. Si su fuente de datos es un BindingSource, también puede llamar a BindingSource.EndEdit.

Llamar a Validate () funcionó para mí.