Laden...

Datenbindung eines DataGridView

Letzter Beitrag vor 16 Jahren 10 Posts 1.874 Views
Datenbindung eines DataGridView

Hallo Leute,

ich habe folgendes Problem und werde in der MSDN gerade nicht fündig.
Ich lade über ein WebService ein Struct-Array welches die entsprechenden Daten als Felder enthält.

Danach setze ich dieses Array direkt als Source meines DataGridViews. Das Anzeigen dieser Daten funktioniert auch. Auf welcher Ebene muss ich aber nun ansetzen, um eine Änderung mitzubekommen (Löschen, Bearbeitung einer ganzen Zeile) und entsprechende Funktionen meines WebServices aufzurufen?

Muss ich dafür eine Binding-Klasse oder ähnliches implementieren, oder geht das mit den Standard-Ereignissen des DataGridViews?

Gruß, Rodney

Soweit ich weiss soltest du dein Array eher in eine IBindingList packen.

Original von jaensen
Soweit ich weiss soltest du dein Array eher in eine IBindingList packen.

dieses Interface habe ich mir schon angesehen, allerdings müsste ich
da ja jede Menge Funktionalität selbst implementieren.

Im Prinzip ist das doch ein Standard-Fall, den ich da entwerfe, oder?

Auslesen kann ich ja, wie gesagt. Ich möchte nur abgreifen können wann eine Zeile geändert bzw gelöscht wird. Diese Events werden im Moment überhaupt nicht gefeuert... ?( (Beispielsweise DataViewGrid.UserDeletingRow)

Original von jaensen

>

das hört sich doch auch ganz nett an.

das hört sich in der Tat gut an, aber soweit ich dass sehe, kann man dort keine Funktionalität für das Löschen implementieren 🙁

BTW:
Diese vorgefertigten Sachen von MS sind ja oft wirklich nett, aber ich glaube, deren Anwendungsfall zielt eher auf die Verwendung von DataSets etc ab?

Diese vorgefertigten Sachen von MS sind ja oft wirklich nett, aber ich glaube, deren Anwendungsfall zielt eher auf die Verwendung von DataSets etc ab?

Hä?

Hallo Rodney,

was ist mit BindingSource. Das müßte doch für dich ausreichend sein.
Dein Array, muß natürlich entsprechende Voraussetzungen erfüllen, bindest du an BindingSource. Diese nun an dein Grid.
Über die BindingSource hast du dann entsprechene Events.
Schau mal nach.

Gruß falangkinjau

Original von jaensen

Diese vorgefertigten Sachen von MS sind ja oft wirklich nett, aber ich glaube, deren Anwendungsfall zielt eher auf die Verwendung von DataSets etc ab?
Hä?

soweit ich das beim Stöbern in der MSDN mitgekriegt hat, kann man solche Sachen doch bei direkter Bindung an eine Datenbank vollautomatisch per RAD entwickeln oder?

Kann man, allerding kann man dann z.B. keinen O/R-Mapper mehr benutzen.
Das sind alles nette features aber ob sie zu gerauchen sind entscheidet dann doch eher das Projekt.

Wenn man z.B. einen normalen O/R-Mapper benutzt wird man dessen DataObjects vermutlich auch per Databinding an ein Grid oder jedes andere X-beliebige Control binden können.

Ausserdem dürfte sich der Aufwand diese Interfaces zu implementieren schnell rentieren (Kompatibilität). Stell dir vor du möchtest dieses Array an ein Grid anbinden und baust dir weil es gerade einfacher ist irgendeine Speziallösung, deine Anwendung wächst und du holst dir irgendeins von diesen High-Performance Grids oder gedenkst es irgendwann anstelle eines WinForms Controls an ein WebControl zu binden welches etwas anders Arbeitet.
In so einem Fall bist du mit dem Standard DataBinding eher auf der sicheren Seite.

Ich denke insgesamt an ein Verhalten wie beispielsweise beim SQL Server Management Studio. Wenn man da an den Tabelleninhalten etwas ändert (im DataGridView) führt ERST ein Wechsel der Zeile zur Speicherung der Änderung.

Im Framework gibt es nichts vorgefertigt in der Richtung, oder?