Maison > développement back-end > C++ > Pourquoi mon WinForms DataGridView ne se met-il pas à jour après l'ajout d'éléments à une liste ?

Pourquoi mon WinForms DataGridView ne se met-il pas à jour après l'ajout d'éléments à une liste ?

Susan Sarandon
Libérer: 2025-01-04 01:17:43
original
297 Les gens l'ont consulté

Why Doesn't My WinForms DataGridView Update After Adding Items to a List?

Liaison BindingList à DataGridView dans WinForm

Dans ce scénario WinForm, une classe représentant une personne et une liste sont utilisés, dans le but de lier cette liste à un DataGridView. La liaison réussit initialement, affichant deux lignes correspondant aux éléments ajoutés à la liste. Cependant, les ajouts ultérieurs à la liste ne sont pas automatiquement reflétés dans DataGridView.

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;
Copier après la connexion

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 et DataGridView.

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal