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.
Miscellaneous

Neueste Beiträge

GitHub Actions umstellen - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 2
Eine Jobmatrix bringt die lokale Testaufteilung auf mehrere Runner. Damit daraus ein verlässlicher CI-Lauf entsteht, müssen Shard-Nummern, Fehlerstatus und Ergebnisdateien zusammenpassen. Der Workflow zeigt die nötigen Schritte.
6 Minuten
Dokumente und Collaboration mit Microsoft Graph - Connected Apps mit .NET, Teil 3
Eine .NET-App liest Dokumentbibliotheken aus OneDrive und SharePoint, überträgt Dateien und verfolgt Änderungen über Microsoft Graph.
7 Minuten
CLAUDE.md richtig aufbauen - Projektanforderungen an Entwickler in Zeiten von KI, Teil 1
Gleicher Prompt, gleiches Projekt, einmal mit leerer CLAUDE.md, einmal mit gepflegter. Die Ergebnisse sind nicht vergleichbar. Wie eine Markdown-Datei zum wichtigsten Interface zwischen Entwickler und KI-Agent wird.
6 Minuten

Das könnte Dich auch interessieren

Frühjahrsputz für .NET - Alte .NET-Versionen entfernen
Immer mehr .NET-Versionen sammeln sich auf der Festplatte an. Höchste Zeit, wieder Platz zu schaffen.
14 Minuten
MessagePack: JSON als Binär-Image - Best of NuGet, Teil 10
Das Serialisierungsformat MessagePack wurde – anders als JSON – konsequent auf die Bedürfnisse von Maschinen und damit auch auf höchstmögliche Kompaktheit optimiert. Der Vorteil: Ein geringeres zu übertragendes Datenvolumen führt vor allem in IoT-nahen Anwendungen direkt zu geringeren Kosten.
6 Minuten
17. Aug 2026
SignalRC – in Echtzeit ans Steuer - Der DDC-Truck: Auf in die Welt mit SignalR, Raspberry Pi und sechs Rädern
Ein vernetztes Fahrzeug, gesteuert per Weboberfläche und LTE. SignalR sorgt dabei für millisekundenschnelle Kommunikation – direkt, stabil und skalierbar.
16 Minuten
21. Jan 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige