Quels sont les avantages de l'utilisation d'un bindingsource avec bindinglist<affaires obj> en tant que source de données?
Je peut directement lier mon contrôle DataGridView à une bindinglist de mon entreprise objets en définissant la propriété DataSource. Mon entreprise objet implémente INotifyPropertyChanged, de sorte que le DGV est mis à jour lorsqu'un nouvel élément est ajouté à la Liste Liaison ou existant est mis à jour.
De dossiers unique, je peux lier mon entreprise objet de zones de texte et d'autres contrôles pertinents.
Je peux également dériver de BindingList et de créer un CustomBindingList classe pour mettre en œuvre des méthodes de IBindable, comme expliqué dans le lien ci-dessous :
http://msdn.microsoft.com/en-us/library/aa480736.aspx
Sinon, j'ai vu des gens vous recommandons d'utiliser un BindingSource. BindingSource de la source de données est l'objet de l'entreprise et de la DGV de la source de données est le BindingSource.
En tout cas, en se basant sur un BindingSource n'offre pas de moi:
- Filtrage (Filtre ne fonctionne pas). La mise en œuvre doivent être fournis par moi-même.
- De tri et de Recherche ne fonctionne pas. La mise en œuvre doit être fourni par moi.
Pourquoi, donc, est le BindingSource approche recommandée?
Tableau D'Ensemble:
Je suis nouveau OOPS concepts et C#. Travailler avec des applications de Base de données. Winforms. Jusqu'à présent, ont seulement utilisé DataSet /DataTable approche. Maintenant, essayez de créer et d'utiliser mes propres classes.
Ont généralement un Maître/Détail du formulaire. Quand je clique sur une ligne de Détail dans la DGV, je souhaite modifier cet enregistrement dans une fenêtre séparée. J'ai donc besoin d'obtenir une poignée sur la liste de l'élément représenté par la ligne en question dans la DGV. En essayant de trouver une solution qui m'a amené à ce point et ce doute.
Compte tenu de ce que je veux faire, l'approche la meilleure et pourquoi?
Quelques conseils ici serait vraiment de l'aide car je suis très nouveau à cela.
OriginalL'auteur user774062 | 2012-04-22
Vous devez vous connecter pour publier un commentaire.
Il est recommandé d'utiliser un BindingSource lors de plusieurs contrôles sur le formulaire utiliser la même source de données (Derrière les Coulisses: l'Amélioration de Liaison de Données Windows Forms)
Au moment de la conception: personnellement, je trouve le BindingSource très utile au moment de choisir les propriétés de mon entreprise de l'objet lors de la liaison de données pour les contrôles.
Pour obtenir un handle vers la ligne sélectionnée, essayez bindingSource1.Courant comme MyBusinessObject;
Comme pour le filtrage et la recherche: - je utiliser un tiers de la dll pour les grilles qui ont mis en œuvre. Ne peut donc pas vous aider, désolé.
Lorsque vous travaillez avec des listes de différents types de business objects, ne pas utiliser directement la liste
Au lieu d'utiliser une BindingList comme ceci:
Qui fera en sorte que tous les objets accédés dans la liste sont de type IAnimal et vous permet d'économiser quelques exceptions près.
OriginalL'auteur Martin
De liaison à une source de données peut vous donner des avantages lorsque l'on traite avec un grand ensemble qu'une partie de ce qui est affiché. Par exemple, si vous regardez la Telerik ListView ici http://www.telerik.com/help/winforms/listview-databinding.html (il y en a beaucoup de ces packages de composants, c'est juste la dernière, je suis en utilisant des morceaux de).
La vue est très léger et permet à votre position de défilement de déterminer les objets qui doivent être affichées. Donc, si vous regardez seulement les 10 premiers objets et de ne jamais faire défiler vers le bas seulement 10 se limite affichée. Cela peut éviter beaucoup de données inutiles accès.
Leur GridView fonctions de la même manière. Il y a l'affichage de la partie de la grille qui est séparée de la zone potentiellement énorme sous-jacente de la grille.
Comme un bonus, vous obtenez de filtrage, de tri, de regroupement.
OriginalL'auteur Dirk Bester
Autant que je sache, si vous travaillez avec un base de données, vous utilisez un bindingSource dans le milieu afin d'établir un accord bilatéral de pont entre la base de données et de contrôle. Sinon vous pouvez simplement utiliser un bindingList comme source pour votre contrôle.
OriginalL'auteur Alejandro del Río