Abhängige ComboBox-Steuerelemente

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

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →