2010-03-17 5 views
1

J'ai un objet source de liaison qui remplit certaines zones de texte. En cours d'exécution, après avoir modifié les zones de texte, je souhaite pouvoir récupérer les anciennes valeurs.Winforms BindingSource

comment puis-je récupérer l'ancienne valeur de la zone de texte et actualiser l'écran? Peut-être que la source de liaison a une histoire ou quelque chose?!

Répondre

2

Non, ce n'est pas le cas. La liaison de données ne consiste pas à conserver l'historique. Vous voulez les valeurs d'origine, gardez-les en dehors de votre source de liaison et des contrôles;) Principe de conception de base - pour maintenir toute l'infrastructure de liaison de données. Parce que dans de nombreux cas, l'historique n'est pas nécessaire, et dans les autres cas, il est préférable de l'implémenter dans l'entreprise, et non dans la base de données.

+0

J'ai l'objet délimité gardé à l'extérieur, que puis-je faire maintenant pour mettre à jour les contrôles avec les anciennes valeurs? Je ne veux pas commencer à faire comme ça: "textbox1.text = ...", Puis-je simplement changer la source de données et faire en quelque sorte Refresh à l'écran \ Controls? – Erez

+0

Pour que la source de liaison mette à jour la zone de texte lorsque vous modifiez la propriété, vous devez implémenter [INotifyPropertyChanged] (https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx) sur le objets dans la source de données de BindingSource. [Exemple] (http://www.codeproject.com/Articles/15822/Bind-Better-with-INotifyPropertyChanged). – jnm2

Questions connexes