Abhängige ComboBox-Steuerelemente

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die beiden ComboBox-Steuerelemente in der Entwurfsansicht

Bild 1: Die beiden ComboBox-Steuerelemente in der Entwurfsansicht

Ein beliebter Anwendungsfall von ComboBox-Steuerelementen ist, dass der Benutzer in der ersten ComboBox einen Wert auswählt und die in der zweiten ComboBox angezeigten Daten entsprechendem Wert aus der ersten ComboBox angepasst werden. Dafür gibt es einige Beispiele – Hersteller und Produkte, Abteilungen und Mitarbeiter, Kategorien und Artikel und so weiter. Dieser Artikel zeigt, wie Sie zwei ComboBox-Steuerelemente so mit Daten füllen und programmieren, dass diese die Auswahl abhängiger Informationen erlauben.

Die Grundkonstellation besteht in der Definition von zwei ComboBox-Steuerelementen im WPF-Fenster MainWindow.xaml des Beispielprojekts. Das Ergebnis sieht wie in Bild 1 aus.

Die beiden ComboBox-Steuerelemente in der Entwurfsansicht

Bild 1: Die beiden ComboBox-Steuerelemente in der Entwurfsansicht

Die Steuerelemente definieren wir wie folgt:

<Label>Kategorie:</Label>
<ComboBox x:Name="cboKategorien" ItemsSource="{Binding Kategorien}"     DisplayMemberPath="Bezeichnung"></ComboBox>
<Label>Artikel:</Label>
<ComboBox x:Name="cboArtikel" ItemsSource="{Binding Produkte}" DisplayMemberPath="Bezeichnung"></ComboBox>

Klassen für Kategorien und Produkte

Für die Kategorien verwenden wir die folgende Klassendefinition, die neben den beiden automatisch implementierte Eigenschaften noch einen Konstruktor enthalten:

Public Class Kategorie
     Public Sub New(ID As Integer, Bezeichnung As String)
         Me.ID = ID
         Me.Bezeichnung = Bezeichnung
     End Sub
     Public Property ID As Integer
     Public Property Bezeichnung As String
End Class

Die Klasse Produkt hat ein Feld mehr, weil sie noch eine Eigenschaft für die Referenzierung der Kategorie enthält, der das Produkt zugeordnet ist. Auch hier verwenden wir automatisch implementierte Eigenschaften und einen Konstruktor, der Parameter für alle Eigenschaften bereitstellt:

Public Class Produkt
     Public Sub New(ID As Integer, Bezeichnung As String, Kategorie As Kategorie)
         Me.ID = ID
         Me.Bezeichnung = Bezeichnung
         Me.Kategorie = Kategorie
     End Sub
     Public Property ID As Integer
     Public Property Bezeichnung As String
     Public Property Kategorie As Kategorie
End Class

Anlegen von Kategorien und Produkten

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar