Filtern von Collections unter WPF

Daten können auf unterschiedlichste Weisen gefiltert werden. Eine Variante besteht darin, die Daten bereits gefiltert aus der Quelle (Datenbank, XML, etc.) zu lesen und in einem ItemsControl (ListBox, ComboBox, ListView etc.) anzuzeigen.

Soll nun dieselbe Collection in unterschiedlichen Elementen auf Basis einer bestimmten Filterung (festgelegt, oder definiert durch Benutzereingaben) angezeigt werden, dann bietet sich die Verwendung einer CollectionViewSource an. Dadurch werden insgesamt drei Möglichkeiten zur Verfügung gestellt:

  • Sortierung
  • Gruppierung
  • Filterung

Zur Filterung bietet die CollectionViewSource ein Ereignis Filter an. Dieses kann abonniert werden um eine Filterung vorzunehmen. Für jedes Item der Auflistung wird dieses Ereignis ausgelöst. Die EventArgs liefern hierbei das betroffene Item, als auch die EigenschaftAccepted. Entspricht das Item den gewünschten Filterkriterien ist diese Eigenschaft auf true zu stellen, andernfalls auf false.

Anstatt nun das ItemsControl direkt an eine Liste zu binden, wird sie an die jeweilige CollectionViewSource gebunden und somit mit der definierten Filterung versehen. Ein einfacher Weg, eine Filterung vorzunehmen.

Auf .NET GUI habe ich ein entsprechendes Beispiel veröffentlicht, welches den Umgang mit der CollectionViewSource zeigt.

WPF: Filtern von Collections.

Veröffentlicht von Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen