Binding BindingList
In diesem WinForm-Szenario werden eine Klasse, die eine Person darstellt, und eine List
Verstehen der Bindung
Das Problem ergibt sich aus der Tatsache, dass List IBindingList nicht implementiert. Folglich ist sich die DataGridView nicht der an der Liste vorgenommenen Änderungen bewusst.
Lösung: BindingList
Um dieses Problem zu beheben, sollten Sie erwägen, die DataGridView an eine BindingList< zu binden ;T> stattdessen. Diese Klasse implementiert IBindingList und ermöglicht es DataGridView, Benachrichtigungen über Änderungen in der gebundenen Liste zu empfangen.
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
BindingSource für noch mehr Kontrolle
Für noch mehr Kontrolle über Daten Erwägen Sie die Verwendung einer BindingSource als Vermittler zwischen der 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;
Durch die Verwendung dieses Ansatzes können Sie eine konsistente und dynamische Bindung zwischen Ihrer Datenquelle und dem DataGridView aufrechterhalten und so sicherstellen, dass Aktualisierungen der zugrunde liegenden Daten in Echtzeit widergespiegelt werden.
Das obige ist der detaillierte Inhalt vonWarum wird mein WinForms DataGridView nach dem Hinzufügen von Elementen zu einer Liste nicht aktualisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!