Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
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.
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