Heim >Backend-Entwicklung >C++ >Wie aktualisiere ich eine an eine Liste gebundene WinForms DataGridView dynamisch?
So binden Sie eine Liste
Binden einer Liste
Stellen Sie sich das folgende Szenario vor:
class Person{ public string Name {get; set;} public string Surname {get; set;} }
Möglicherweise haben Sie eine Liste
List<Person> persons = new List<Person>(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
Zunächst werden diese Elemente in der DataGridView angezeigt. Wenn Sie jedoch neue Elemente zur Personenliste hinzufügen, werden diese von DataGridView nicht angezeigt.
Das Problem
Das Problem liegt darin, dass die Liste nicht implementiert wird IBindingList, was bedeutet, dass DataGridView keine Benachrichtigungen über Änderungen in der erhält Daten.
Lösung
Um dieses Problem zu beheben, verwenden Sie eine BindingList
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
Erweiterte Bindung mit BindingSource
Sie können dies weiterführen, indem Sie eine BindingSource verwenden, die zusätzliche Funktionen wie Sortieren bereitstellt , Filterung und Parallelität.
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;
Durch Befolgen dieser Techniken können Sie a binden Liste
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine an eine Liste gebundene WinForms DataGridView dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!