Laden...

Eigene Objekte im DataGridView

Letzter Beitrag vor 17 Jahren 9 Posts 1.770 Views
Eigene Objekte im DataGridView

Hallo zusammen,

ich bin auf der Suche nach einem geeigneten Lösungsweg.
Und zwar möchte ich mehrere Objekte des Typs Person in einem DataGridView anzeigen lassen. Die Daten kommen ursprünglich auch einer lokalen Accessdatenbank. Ich möchte das Objekt nachher auch wieder aus dem DataGridView rausholen können um dann auf die Propertys zugreifen zu können.

Also was ich bisher rausgefunden habe ist, das es mit einem BindingSource wohl am besten gehen könnte. Dann würde ich der BindingSource an eine List<T> bzw. BindingList<T> hängen. Gibt es dafür eine fertige Lib die das Sortieren für mich übernimmt? In dem Person Objekt hängen nur string, int und decimal werte.

Wie mache ich das am elegantesten?
Bin für jede Hilfe dankbar, auch wenn es nur der Hinweis auf die Suchfunktion mit den richtigen Schlagwörtern ist.

Vielen Dank
cluening

Original von cluening
Bin für jede Hilfe dankbar, auch wenn es nur der Hinweis auf die Suchfunktion mit den richtigen Schlagwörtern ist.

Ähm, wie wäre es denn mit "BindingSource sortieren"?

Hallo cluening,

das Sortieren überlässt du dann dem DataGridView bzw. dem Anwender. Das DataGridView hat eine Eigenschaft für das Sortieren. Der Name der Eigenschaft fällt mir gerade nicht ein. Mußt du mal in der Doku nach lesen. Ist diese auf true, dann kann der Anwender im Columnheader auf ein Dreieck klicken und entsprechende Spalte wird aufsteigend bzw. absteigend sortiert.

Sollte theoretisch eigendlich schon so gehen.

Gruß falangkinjau

Nein, so wird es nicht funktionieren.
Da BindingSource.SupportsSorting false liefert ( wenn man z.B. ne List<T> hinzufügt ).

Such mal mit den Stichwörtern im Forum, da findest Du glaube ich sogar ein Beispiel.

Hallo Noodles,

doch doch, so meinte ich das schon. Die Klasse(n) sollte schon entsprechend implementiert sein. Davon bin ich ausgegangen. 😉

Hallo cluening,
dem Link folgst du und wirst entsprechende Lösungsansätze finden. Dort hat Noodles zwei Links eingestellt die eigendlich alles erklären.

Gruß falangkinjau

Vielen Dank für Eure antworten.

Und wie bekomme ich jetzt genau das selektierte Objekt aus meiner BindingList?
Also wenn cih in der Tabelle eine Zeile selektiere und dann über rechte Maustaste bspw. das darunterliegende Objekt haben möchte?

Also ich weiß das ich dann über das dgv an die data source komme und darüber an die bindinglist aber wie komme ich an die zeilennummer das ich den index an die bindinglist übergebe?

Gruß
cluening

Boing vornkopphau es ist 3 Monate hin seit dem ich das letzte mal C# programmiert hab. Es gibt ja CurrentRow und darüber gehts mit dem Index.

Ich hab jetzt doch noch eine Frage, ich habe in einem DGV mehrere Datentypen d.h. es können einmal Personen aber auch Artikel sein. Jedoch nicht gleichzeitig. Wie würdet ihr das am saubersten lösen? Mit typeof von dem Objekt. Ich habs bisher über den Namen des DGV gemacht aber das kann ja nicht sinn der Programmierung sein oder?