Maison > développement back-end > C++ > Comment mettre à jour dynamiquement un DataGridView WinForms lié à une liste ?

Comment mettre à jour dynamiquement un DataGridView WinForms lié à une liste ?

Mary-Kate Olsen
Libérer: 2025-01-03 06:57:39
original
450 Les gens l'ont consulté

How to Dynamically Update a WinForms DataGridView Bound to a List?

Comment lier une liste à un DataGridView dans WinForms avec mises à jour de données

Liaison d'une liste vers un DataGridView est une technique utile pour afficher les données sous une forme tabulaire structurée. Cependant, il est essentiel de garantir que la grille se met à jour automatiquement lorsque les données sous-jacentes changent.

Considérez le scénario suivant :

class Person{
    public string Name {get; set;}
    public string Surname {get; set;}
}
Copier après la connexion

Vous pouvez avoir une liste auquel vous ajoutez quelques éléments :

List<Person> persons = new List<Person>();
persons.Add(new Person(){Name="Joe", Surname="Black"});
persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
Copier après la connexion

Dans un premier temps, ces éléments seront affichés dans le DataGridView. Cependant, si vous ajoutez de nouveaux éléments à la liste des personnes, DataGridView ne les affichera pas.

Le problème

Le problème réside dans le fait que la liste n'implémente pas IBindingList, ce qui signifie que DataGridView ne reçoit pas de notifications concernant les modifications apportées au data.

Solution

Pour résoudre ce problème, utilisez une BindingList au lieu d'une liste. Une BindingList implémente IBindingList, fournissant les notifications d'événements nécessaires.

var list = new BindingList<Person>(persons);
myGrid.DataSource = list;
Copier après la connexion

Liaison avancée avec BindingSource

Vous pouvez aller plus loin en utilisant un BindingSource, qui fournit des fonctionnalités supplémentaires telles que le tri , le filtrage et la concurrence.

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 suivant ces techniques, vous pouvez lier un Liste à un DataGridView dans WinForms et assurez-vous que la grille reste à jour avec les modifications apportées aux données.

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