rittergig - So 10.07.11 15:41
Titel: DataGridView sortieren
Ich möchte Daten aus einem Entity Framework Objektkontext an ein GridView binden und dieses zusem noch nach einer beliebigen Spalte sortieren.
Folgendes habe ich versucht:
Weder das:
C#-Quelltext
1: 2: 3: 4: 5:
| var erg = from i in this._context.Instruments select i; BindingSource bs = new BindingSource(); bs.DataSource = erg; dataGridView2.DataSource = bs; dataGridView2.Sort(this.dataGridView2.Columns["Name"], ListSortDirection.Ascending); |
noch das:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| var erg = from i in this._context.Instruments select i; BindingSource bs = new BindingSource(); IQueryable iq = erg.AsQueryable(); bs.DataSource = iq; dataGridView2.DataSource = bs; dataGridView2.Sort(this.dataGridView2.Columns["Name"], ListSortDirection.Ascending); |
geht nicht.
Ich bekomme immer die InvalidOperationException:
Zitat: |
Das DataGridView-Steuerelement kann nicht sortiert werden, wenn es an eine IBindingList gebunden ist, die das Sortieren nicht unterstützt. |
Warum? Was mache ich falsch?
Grüße Peter
Th69 - So 10.07.11 20:40
Hallo Peter,
die Fehlermeldung sagt aus, daß man die Sort-Methode nicht verwenden kann, wenn man "DataBinding" benutzt.
Du kannst entweder die Sort-Eigenschaft der BindingList benutzen:
oder aber die Daten schon sortiert in der Query abrufen:
C#-Quelltext
1:
| var erg = from i in this._context.Instruments orderby Name select i; |
(wobei "ascending" voreingestellt ist, d.h. nicht angegeben werden muß)