Heim >Backend-Entwicklung >C++ >Wie halte ich eine DataGridView beim Binden an eine dynamische Liste auf dem neuesten Stand?

Wie halte ich eine DataGridView beim Binden an eine dynamische Liste auf dem neuesten Stand?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-04 16:10:44565Durchsuche

How to Keep a DataGridView Updated When Binding to a Dynamic List?

So zeigen Sie eine dynamisch aktualisierte Bindungsliste in DataGridView an

Einführung

Binden einer Liste< T> zu einem DataGridView kann eine bequeme Möglichkeit sein, dynamische Daten anzuzeigen. Das Aktualisieren der Liste spiegelt jedoch möglicherweise nicht immer Änderungen in der DataGridView ohne explizite erneute Bindung wider.

Problem

Stellen Sie sich ein Szenario mit einer List enthält zwei Artikel („Joe Black“ und „Misha Kozlov“). Bei Bindung an DataGridView werden diese Elemente angezeigt. Durch das Hinzufügen neuer Elemente zur Liste wird jedoch der Inhalt des Rasters nicht aktualisiert.

Lösung

Verwenden einer BindingList

Das DataGridView unterhält keine direkte Verbindung zu einer Liste. Verwenden Sie stattdessen eine BindingList, die IBindingList implementiert und das Raster über Änderungen benachrichtigt.

var list = new BindingList<Person>(persons);
myGrid.DataSource = list;

Verwenden einer BindingSource

Für eine detailliertere Steuerung sollten Sie die Verwendung in Betracht ziehen eine BindingSource:

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;

Die BindingSource bietet Flexibilität für die Datenbearbeitung und die Bindung mehrerer Datenquellen. Änderungen an den zugrunde liegenden Daten werden ohne explizite erneute Bindung an das Raster weitergegeben.

Das obige ist der detaillierte Inhalt vonWie halte ich eine DataGridView beim Binden an eine dynamische Liste auf dem neuesten Stand?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn