Ungebundene ComboBox

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

Auswahlfelder werden unter WPF meist mit dem ComboBox-Steuerelement abgebildet. Manchmal braucht man diese nur für die Auswahl von Daten aus einfachen Auflistungen und die ComboBox-Steuerelemente selbst sind nicht an eine Eigenschaft des Code behind-Moduls gebunden. Wie man solche ungebundenen ComboBox-Steuerelemente einfach abbildet, zeigt dieser Artikel.

Wir schauen uns die ungebundene ComboBox für verschiedene Fälle an – als erstes für eine einfache Liste von Zeichenketten, danach für eine Liste mit Objekten einer bestimmten Klasse. Die Beispiele finden Sie jeweils in eigenen Fenstern, die vom Hauptfenster MainWindow aus aufgerufen werden.

String-Liste in ComboBox darstellen

Im Entwurf sieht unser erstes Beispiel (siehe Fenster ComboBoxMitEinfacherListe.xaml) wie in Bild 1 aus. Neben einigen Style-Definitionen für die Steuer-elemente im Bereich Window.Resources des XAML-Codes und der Definition des Grid-Elements, die Sie im Beispielprojekt einsehen können, werden das Bezeichnungsfeld und das ComboBox-Element wie folgt definiert:

Entwurf der ComboBox

Bild 1: Entwurf der ComboBox

<Label>Ungebundene ComboBox:</Label>
<ComboBox Grid.Column="1" x:Name="cboUngebunden" ItemsSource="{Binding Vornamen}"></ComboBox>

Das Ziel ist nun, die Angabe des Attributs mit ItemsSource und dem Wert {Binding Vornamen} im Code behind-Modul so mit Leben zu füllen, dass die gewünschten Einträge in der ComboBox erscheinen.

Dazu deklarieren wir zunächst eine private Variable für die Liste und eine entsprechende Eigenschaft, welche die Liste für die daran gebundenen Steuer-elemente verfügbar macht:

Class MainWindow
     Private _Vornamen As List(Of String)
     Public Property Vornamen As List(Of String)
         Get
             Return _Vornamen
         End Get
         Set(value As List(Of String))
             _Vornamen = value
         End Set
     End Property

Nun fügen wir die Konstruktor-Methode hinzu, die dafür sorgt, dass die Liste gefüllt wird und dass das XAML-Dokument das Code behind-Modul als Datenquelle verwenden kann (DataContext = Me). Danach füllen wir die Liste namens Vornamen noch mit drei Einträgen:

     Public Sub New()
         InitializeComponent()
         DataContext = Me
         Vornamen = New List(Of String)
         With Vornamen
             .Add("André")
             .Add("Dieter")
             .Add("Klaus")
         End With
     End Sub
End Class

Das Ergebnis sieht wie in Bild 2 aus. Das ist eine einfache Version für das Binden von Daten aus einer Liste als Datenquelle eines ComboBox-Steuerelements.

ComboBox-Steuerelement mit Einträgen

Bild 2: ComboBox-Steuerelement mit Einträgen

 

Schreibe einen Kommentar