Abhängige ComboBox-Steuerelemente

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

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

 

Schreibe einen Kommentar