Kolumne XAML Expertise: WPF: Filtern von „ListBox“-Daten

XAML-Tipp: WPF – Filtern von „ListBox“-Daten
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „WPF – Filtern von „ListBox“-Daten“.

Für das Filtern von Daten gibt es zahlreiche Möglichkeiten. Eines der häufigsten Szenarios, die ich bei meinen Kunden bemerkt habe, ist das Ausführen einer Filterlogik, die dann eine ObservableCollection neu befüllt. Eine etwas performantere Lösung bietet uns hierbei die CollectionView-Klasse. Diese stellt eine Ansicht für das Gruppieren, Sortieren, Filtern und Navigieren in einer Datensammlung dar.

In Listing 1 wird gezeigt, wie eine ObservableCollection mit einer CollectionView verknüpft wird. Sollte sich etwas bei der ObservableCollection ändern, wird daraufhin die CollectionView aktiv. Als Standard werden aktuell alle Daten direkt akzeptiert. Die Filterbedingungen erfolgen via Lambdacode über die Filter-Property. Ein einfaches Beispiel für eine Filterbedingung zeigt Listing 2. Diese filtert alle Wörter aus der Collection, die kürzer als vier Zeichen sind. Erhält die Filter-Property einen Nullwert, wird die Filterbedingung zurückgesetzt.

public class MainViewModel
{
  public MainViewModel()
  {
    Unfiltered = new ObservableCollection();
    Filtered = CollectionViewSource.GetDefaultView(Unfiltered);
  }

  public ObservableCollection Unfiltered { get; private set; }
  public ICollectionView Filtered { get; private set; }
}

// Filter auf alle Wörter, die mehr als 3 Zeichen lang sind
Filtered.Filter = i => ((string)i).Length > 3;

// Filter zurücksetzen
Filtered.Filter = null;

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist der Windows Developer ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -