Forums Neueste Beiträge
 

[WinForm] Objektarray aus WCF an DataGridView binden und sortieren

28/05/2008 - 22:46 von Andreas Gräfe | Report spam
Hallo,

ich habe schon ne ganze Weile keine WinForm App mehr erstellt. Nun muss
ich ein Objektarray, welches ich von einem WCF Service lade an eine
DataGridView binden. Dies funktioniert auch schon unter Verwendung von
BindingSource und BindingNavigator.

Nun möchte ich die Spalten aber sortieren und das intuitiv mittels Click
auf den Spaltenkopf. Ich habe schon alle versucht, aber erhalte immer
die Fehlermeldung:

"Das DataGridView-Steuerelement kann nicht sortiert werden, wenn es an
eine IBindingList gebunden ist, die das Sortieren nicht unterstützt."

Ich habe die Daten schon in eine List<>, ein normales Objektarray des
Objektes ( z.B.: Person[] ) und eine BindingList eingefügt. Nichts hat
sich so sortieren lassen.

Kann mir jemand sagen, wie man das in WinForms macht? Ich habe als
Grundlage das .Net Framework 3.5 und kann also auch mit Linq, was mir
sogar sehr gut passen würde, arbeiten.

Danke,
Andreas

P.S.: Wenn jemand ein Tutorial oder ein Best Practice zu Datenbindungen
ab .Net 2.0 hat, wàre ich auch sehr dankbar.
 

Lesen sie die antworten

#1 Frank Dzaebel
29/05/2008 - 07:27 | Warnen spam
Hallo Andreas,

Nun möchte ich die Spalten aber sortieren und das intuitiv mittels Click
auf den Spaltenkopf. Ich habe schon alle versucht, aber erhalte immer die
Fehlermeldung:

"Das DataGridView-Steuerelement kann nicht sortiert werden, wenn es an
eine IBindingList gebunden ist, die das Sortieren nicht unterstützt."



Womit er ja nun Recht hat ;-)
Zunàchst könntest Du die Sortierbarkeit recht aufwàndig
so implementieren:

[Benutzerdefinierte Datenbindung in Windows Forms 2.0, Teil 2]
http://msdn.microsoft.com/de-de/lib...93236.aspx

[Benutzerdefinierte Datenbindung in Windows Forms 2.0, Teil 1]
http://msdn.microsoft.com/de-de/lib...51295.aspx



Hàufig kann man es aber auch ggf. einfacher erreichen,
indem man die Daten in einen DataTable überführt,
was sowieso Vorteile für Bindungsszenarien hat.



Ich habe die Daten schon in eine List<>, ein normales Objektarray des
Objektes ( z.B.: Person[] ) und eine BindingList eingefügt. Nichts hat
sich so sortieren lassen.
Kann mir jemand sagen, wie man das in WinForms macht? Ich habe als
Grundlage das .Net Framework 3.5 und kann also auch mit Linq, was mir
sogar sehr gut passen würde, arbeiten.



Wenn Du schon einen Person-Typ hast, können wir
mal von folgendem ausgehen:

[Beispiel-Tabelle für das DataGridView]
http://dzaebel.net/DataGridViewBeispiel.htm
(Gebundenes Szenario) -> sortierbar!


Das "Gebundenes Szenario 2, mit Klassen-Instanzen und Attributen"
wàre standardmàssig nicht sortierbar, wie Du schon
richtig erwàhntest. Ansonsten hier auch Hinweise:

[Sortieren von Daten im DataGridView-Steuerelement in Windows Forms]
http://msdn.microsoft.com/de-de/lib...71607.aspx


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

Ähnliche fragen