Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

WPF/C#/VB: Sortierte Listboxen

Wer von Windows Forms kommt und nun Oberflächen mit der Windows Presentation Foundation schreiben muss, kennt den Ärger: An gefühlt 1000 Stellen scheint die WPF komplizierter, zum Beispiel beim Sortieren des Inhalts von Listboxen.
Insbesondere wenn die List- oder ComboBox ohnehin nur Strings anzeigen soll, ist ein ListBox.Sort schnell eingetippt. Das klappt bei Windows Forms problemlos. Bei WPF-ListBoxen erhält man lediglich eine rote Unterringelung -- der Sort-Befehl ist nicht vorhanden. Man kann's kaum glauben und startet die Suche, oder schreibt sich einen Umweg über ein Array, dessen Sort-Befehl nicht von der WPF beeinflusst wird. Wenn man Glück hat, landet man gleich bei der folgenden Lösung, die gleichermaßen für ListBoxen als auch für ComboBoxen (genauer für alle Objekte mit einer ItemCollection) funktioniert:
Sub blStringItemsSort(ByRef ItemsColl As ItemCollection, 
  Optional Descendng As Boolean = False)

  ' Taugt für ListBox und ComboBox gleichermaßen
  If Not Descendng Then
    ItemsColl.SortDescriptions.Add(New SortDescription("",
      ListSortDirection.Ascending))
  Else
    ItemsColl.SortDescriptions.Add(New SortDescription("", 
      ListSortDirection.Descending)) 
  End If
End Sub 
Der Methode wird die ItemCollection der List- oder ComboBox ByRef übergeben. Das bedeutet, dass das Objekt nicht kopiert, sondern direkt bearbeitet wird. Falls man die Items rückwärts sortieren möchte, muss der Methode noch ein True mitgegeben werden, die Standardsortierung steuert der optionale Parameter automatisch. Im Ergebnis Liste in der gewünschten Richtung alphabetisch sortiert. Der Aufruf klappt so:
' cbFilter ist eine WPF-ComboBox
cbFilter.Items.Add("c")
cbFilter.Items.Add("a")
cbFilter.Items.Add("b")
blStringItemsSort(cbFilter.Items) 
In Microsofts Dokumentation finden Sie das Thema auf dieser und auf dieser Seite. Auf letzterer ist auch ein C#-Beispiel zu finden.

Neueste Beiträge

Managed DevOps Pools - Azure DevOps Pipelines Security
Agent Pools als Managed Service mit einfacher Integration in private Netzwerke und Authentisierung mittels Managed Identity tragen deutlich zur Sicherheit der Agent-Infrastruktur bei.
7 Minuten
7. Aug 2025
Meine Ziele – deine Ziele – unsere Ziele
Verfolgt ein Entwicklungsteam gemeinsame Ziele, so kommt, auch bei sehr erfolgreichen Teams, irgendwann der Zeitpunkt, wo die individuellen Ziele einzelner Mitglieder in den Vordergrund treten und das Team gefährden. Warum ist das so, und wie gehen wir damit angemessen um?
7 Minuten
14. Aug 2025
Dokumente in MongoDB speichern
Der GridFS-Speicher als Fundament für KI-gestützte .NET-Anwendungen
6 Minuten
13. Aug 2025
Miscellaneous

Das könnte Dich auch interessieren

Sicher ist sicher - Azure DevOps Pipelines Security
Als integraler Bestandteil der Entwicklungsumgebung ist Azure DevOps Pipelines oft Ziel von Angriffen. Da ist es gut zu wissen, wo die Schwachstellen des Systems liegen.
14 Minuten
16. Jun 2025
CodeProject.AI Server in neuer Version - Lokaler AI-Server
CodeProject.AI Server (jetzt in Version 2.1.10) ist ein lokal installierter, selbstgehosteter, schneller, kostenloser und Open Source Artificial Intelligence Server für jede Plattform und jede Sprache.
2 Minuten
Für Einsteiger: Backend-Webentwicklung mit .NET - Microsoft
Auf YouTube bietet Microsoft eine Videoserie für Einsteiger in die Backend-Webentwicklung mit .NET.
2 Minuten
13. Feb 2024
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige