2008-10-28 3 views
5

J'ai un DataGridView avec sa source de données définie sur une liste générique d'objets personnalisés. Lorsque l'utilisateur change de valeur (dans ce cas, coche/décoche une case à cocher), le champ booléen sous-jacent de l'objet change. Dois-je créer une "copie" de la liste pour liaison, puis la mettre à jour manuellement si l'utilisateur valide, (si oui, comment créer cette copie) ou existe-t-il un moyen simple d'annuler les modifications apportées à la source de données .Comment annulez-vous les modifications apportées à un DataGridView lié?

(J'utilise C#)

Répondre

1

Techniquement, à moins que vous dites à, ce n'est pas la mise à jour de votre source de données réelle, juste la liste que vous avez lié au réseau. Vous êtes toujours libre de disposer de cette liste et de re-interroger votre source pour l'actualiser à son état précédent.

Vous pouvez simplement ajouter une option de validation pour que les utilisateurs puissent valider toutes les modifications qu'ils ont apportées à la source de données actuelle.

Il serait beaucoup plus facile et probablement beaucoup moins intensif de le faire comme ça. Ensuite, vous pouvez simplement avoir un "Annuler les modifications" ou une option qui rafraîchira et reliera la liste de ses sources, sans effectuer de mise à jour.

Espérons que cela aide!

À la votre!

+0

Je transmettais ma liste au formulaire qui était lié. (Il est construit à partir d'un fichier XML). Je pense que vous avez souligné mon erreur. Je dois créer une nouvelle collection List <> pour la liaison, (ne pas utiliser le "live", et valider les changements seulement quand l'utilisateur veut (clique sur OK) Merci –

+0

Pour copier l'objet que vous envoyez au formulaire d'édition. un constructeur de copie pour créer une copie de l'objet d'origine, puis assignez ou supprimez selon le cas d'utilisation http://stackoverflow.com/a/6569799/384554 – PUG

Questions connexes