2008-10-28 20 views
5

Tengo un DataGridView con su fuente de datos establecido en una lista genérica de objetos personalizados. A medida que el usuario cambia los valores (en este caso, marca/desmarca una casilla de verificación), el campo booleano subyacente en el objeto cambia.¿Cómo deshace los cambios realizados en un DataGridView encuadernado?

Debería estar creando una "copia" de la lista para encuadernación, luego actualizando manualmente si el usuario confirma (si es así cómo crear esta copia), o hay una manera simple de deshacer los cambios realizados en la fuente de datos .

(estoy usando C#)

Respuesta

1

Técnicamente menos que usted está diciendo que, no es la actualización de su fuente de datos real, sólo la lista que ha obligado a la red. Aún puede deshacerse de esta lista y volver a consultar su fuente para actualizarla a su estado anterior.

Puede agregar una opción de confirmación para que los usuarios puedan confirmar todos los cambios que han realizado en la fuente de datos real.

Sería mucho más fácil y probablemente mucho menos intenso manejarlo de esa manera. Entonces simplemente puede tener una "cancelación de cambios" o alguna de esas opciones que actualizará y volverá a enlazar la lista desde su fuente nuevamente, sin realizar una actualización.

Espero que esto ayude!

¡Salud!

+0

Estaba pasando mi lista al formulario que era vinculante. (Está construido a partir de un archivo XML). Creo que has resaltado mi error. Necesito crear una nueva colección List <> para el enlace, (no usar el "en vivo", y confirmar los cambios solo cuando el usuario lo desee (haga clic en Aceptar) Gracias. –

+0

Para copiar el objeto que está enviando para editar el formulario. un constructor de copia para crear una copia del objeto original. Luego asignar o descartar según el caso de uso. http://stackoverflow.com/a/6569799/384554 – PUG

Cuestiones relacionadas