ListCollectionView

WPF_logo

In einem Kundenprojekt gab es die Anforderung die Daten aus einem DataGrid in der vom Anwender sortierten Reihenfolge zu drucken. Üblicherweise bindet man in einer WPF-Anwendung (MVVM) das DataGrid an die Instanz einer ObservableCollection. Eine gebundene ObservableCollection hat aber leider den Nachteil, dass sie vom Sortieren durch den Anwender (z.B. durch Click im Spaltenheader) nichts mitbekommt. D.h. die ursprüngliche Reihenfolge der Items in der ObservableCollection bleibt erhalten. Abhilfe schafft hier die Klasse ListCollectionView. Man erzeugt sich einfach eine neue Instanz einer ListCollectionView in dem man beim Konstruktor einfach die Instanz der ObservableCollection (oder einer Liste wie im Beispielprojekt) übergibt und bindet diese neue Instanz an das DataGrid. Wie man leicht mit einer Foreach-Schleife feststellen kann, entspricht die Reihenfolge der Items dann der Reihenfolge im DataGrid.

Hier ein Beispielprojekt mit freundlicher Unterstützung von Thomas Sobizack.

Weitere Infos z.B. unter http://weblogs.asp.net/monikadyrda/wpf-listcollectionview-for-sorting-filtering-and-grouping