Forums Neueste Beiträge
 

DataGrid update bei update der DatSource

08/09/2007 - 15:17 von Michael Meyer | Report spam
Hallo,

ich verwende eine DataGridView um Daten aus einer DataSource anzuzeigen.
Die Datasource ist ein List<> Objekt. Wenn ich das DataGrid
initialisiere, werden alle Eintràge aus dem List Objekt auch angezeigt.
Nun füge ich aber der Liste weitere Eintràge hinzu und möchte, daß das
DataGrid die weiteren Eintràge anzeigt. Ich habe es bereits mit Refresh,
Update und Invalidate probiert, hatte aber bislang keinen Erfolg.

Gruß

Michael


http://www.mchme.de
 

Lesen sie die antworten

#1 Frank Dzaebel
08/09/2007 - 16:26 | Warnen spam
Hallo Michael,

ich verwende eine DataGridView um Daten aus einer DataSource anzuzeigen.
Die Datasource ist ein List<> Objekt. Wenn ich das DataGrid
initialisiere, werden alle Eintràge aus dem List Objekt auch angezeigt.
Nun füge ich aber der Liste weitere Eintràge hinzu und möchte, daß das
DataGrid die weiteren Eintràge anzeigt. Ich habe es bereits mit Refresh,
Update und Invalidate probiert, hatte aber bislang keinen Erfolg.



Das ist zunàchst mal "by design", da die generische List nicht genügend
Bindungs-Schnittstellen für dieses Szenario implementiert.

Selbst bei Implementation der INotifyPropertyChanged-Schnittstelle, könnte
nur dann aktualisiert werden, wenn die zu àndernde Property auf der
aktuellen Bindungs-Position steht. PropertyChanged würde sich also nur auf
den aktuellen "BindingSource.Current" beziehen.

Als *saubere* Lösung kann man z.B. die IBindingList - Schnittstelle
implementieren, nebst dem Senden von ListChanged(..., ...) und
SupportsChangeNotification. Oder natürlich andere
Datenbindungs-Schnittstellen nutzen:

[Auf Datenbindung bezogene Schnittstellen]
http://msdn2.microsoft.com/de-de/library/41e17s4b(VS.80).aspx

______________________________
Als *pragmatische* Lösung kann man nach Ändern der generischen Liste

dataGridView1.DataSource = null;
dataGridView1.DataSource = bs; // alter BindingSource

aufrufen.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen