Filterung Datagrid Gebunden zu DataTable WPF
Ich versuche, erstellen Sie einen Filter für ein DataGrid in WPF-so wie in den link -
http://www.codeproject.com/Articles/42227/Automatic-WPF-Toolkit-DataGrid-Filtering
Ich bin mit der gleichen Bibliothek, die Sie verwenden, aber die Sache ist, dass ich binden müssen mein DataGrid an eine datatable...
Und es ist, wo der Fehler ist.. der filter-Bibliothek funktioniert perfekt, solange die ItemSource ist eine LISTE, aber hält zu arbeiten, wenn die ItemSource ist eine DataTable...
Alternativen oder Vorschläge??? Funktionierende Beispiele geschätzt..
Ich bin mit AutoColumnGeneration=True da ich nicht weiß, wie viele Spalten brauche ich zum Auffüllen
- Haben Sie versucht, die Bindung der ItemSource an ein CollectionViewSource stammt aus der DataTable?
- Eigentlich die Sache ist, dass mein AutoColumnGeneration = TRUE.. wie ich weiß nicht die genaue Anzahl von Spalten, die ich brauche, um zu bevölkern.. Jetzt irgendwelche Vorschläge
- Ich hatte dies vor. Aber die Mühe hatte, eine sehr kurze Zündschnur auf, so dass ich erstellt eine CollectionViewSource aus den Reihen und verwendet eine maßgeschneiderte Wert-Konverter. Es funktionierte perfekt, aber ich bin sicher, es gibt bessere Möglichkeiten. Auch in der ersten Instanz, die Sie nicht verwenden, code, der gewickelt um stark typisierte collections mit einer Daten-Tabelle, da eine Daten-Tabelle verwendet geschachtelte arrays!
- Kann ich ein funktionstüchtiges Beispiel, das gleiche??
- Wenn sonst niemand kommt mit etwas, kann ich mein Zeug und finde es, aber sind Sie glücklich, um etwas zu akzeptieren, dass eine schnelle Lösung?
- ja dude seine Art der dringenden... keine Lösung hat bei mir geklappt, bis jetzt..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jede DataRow in einer Tabelle enthält ein flaches Array von Objekten, deren Typ ist zugänglich nur durch Extraktion aus der DataColumns array. Da alles in der Reihe ist boxed, eine Bibliothek, die sich auf eine stark typisierte Auflistung, wie die Liste von T nicht kompatibel. Das sollte erklären, warum es nicht funktioniert.
Du hast geschrieben, dass es dringend ist und ich hatte zu tun die gleiche Art von Ding, sobald es in einem Projekt eine sehr kurze Zündschnur und ich erläutere meine Vorgehensweise. Diese Antwort ist für DRINGEND Fällen nur.
Hier ein ViewModel...
Der Konstruktor nimmt einen DataTable und verwendet den Zeilen als verbindliche Quelle für eine CollectionView. Da die CollectionView hat eine eingebaute Filterung und Sortierung von Eigenschaften, es ist ein großes Werkzeug zu verwenden, als eine verbindliche Quelle. Auch wie gezeigt, hat der Konstruktor fügt einen filter für ein Beispiel, um Ihnen den Einstieg.
Werden die Daten an den Benutzer, betrachten Sie das folgende Xaml...
Dies ist ein DataGrid, dessen ItemsSource gebunden ist an die CollectionView, dass erklärt wurde, zugeordnet und im ViewModel. Jede Spalte der Daten, die übergeben wird, über einen Wandler zusammen mit einem parameter, welcher sagt den Konverter, was es tun muss.
Cap alles aus, hier ist der Konverter...
Sollten Sie wieder auf die Strecke mit filtern und zu präsentieren, wenn Sie eine DataTable und eine dringende situation. Alle in die Codierung dauert etwa eine Stunde. Beachten Sie auch, dass mine bindet an die Zeilen, aber Sie können auch binden Sie an die Standardansicht wenn es sein muss.