Liaison BindingList
Dans ce scénario WinForm, une classe représentant une personne et une liste
Comprendre la liaison
Le problème vient du fait que List n'implémente pas IBindingList. Par conséquent, DataGridView n'est pas au courant des modifications apportées à la liste.
Solution : BindingList
Pour résoudre ce problème, envisagez de lier DataGridView à une BindingList< ;T> plutôt. Cette classe implémente IBindingList, permettant au DataGridView de recevoir des notifications de modifications dans la liste liée.
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
BindingSource pour encore plus de contrôle
Pour un contrôle encore plus grand sur les données liaison, envisagez d'utiliser un BindingSource comme intermédiaire entre le BindingList
var list = new List<Person>() { new Person { Name = "Joe", }, new Person { Name = "Misha", }, }; var bindingList = new BindingList<Person>(list); var source = new BindingSource(bindingList, null); grid.DataSource = source;
En employant cette approche, vous pouvez maintenir une liaison cohérente et dynamique entre votre source de données et DataGridView, garantissant que les mises à jour des données sous-jacentes sont reflétées en temps réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!