WinForms DataBinding avec DataGridView

Je si je post ce que, après avoir passé plusieurs heures à essayer de s'en sortir, j'en suis nulle part. Tout d'abord, je suis pleinement conscient que la liaison de données en WinForms n'est pas le meilleur. Cela dit, il fonctionne dans la plupart des scénarios.

Dans mon scénario, j'ai une source de liaison qui est le maître de ma forme. L'objet qui est utilisé pour cette source de liaison a quelques propriétés simples et deux de liaison de listes de propriétés. Les deux de cette classe, et le type de classe pour la liaison des listes d'implémenter INotifyPropertyChanged. Dans mon formulaire, j'ai deux DataGridViews pour afficher le contenu de la liaison propriétés de la liste.

Cela se fait aussi par le biais de la liaison de données au moment de la conception. J'ai deux sources de liaison pour chaque qui utilisent la principale source de liaison qu'il y a de source de données et puis le bindinglist propriétés que le membre de données.

Jusqu'à présent, je ne considère pas cela pour être assez standard.

De mettre à jour ce qui est dans ces listes que j'ai des boutons pour afficher un formulaire qui crée un nouvel article, qui, je puis ajouter à la liste en utilisant BindingList.Ajouter().

Maintenant dans le code, si vous le débogage, les éléments se trouvent dans les listes, cependant, les grilles ne sont pas mise à jour.
Mais si j'ajoute une zone de liste à la forme qui utilise seulement de la liste des sources de liaison puis les deux grilles de départ rafraîchissant comme prévu.

Je m'excuse si ce n'est pas clair, j'ai essayé d'expliquer du mieux que je peux avec une situation de confusion.

Toute pensée serait utile que je ne veux vraiment pas avoir à utiliser une liste cachée de la boîte.

Je ne sais pas si ça vient de moi ou pas mais je n'ai pas compris si tous les objet lié œuvre INotifyPropertyChanged
Oui, tous les objets qui sont liées aux données implémenter INotifyPropertyChanged

OriginalL'auteur Adam Goss | 2013-01-16