WPF-Controls: Kombinationsfelder

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

In den ersten Ausgaben des DATENBANKENTWICKLERs haben Sie bereits einige Steuerelemente kurz kennen gelernt. In den folgenden Ausgaben wird sich dies ändern. Im vorliegenden Artikel schauen wir uns das ComboBox-Steuerelement an, das Sie als Access-Entwickler ja vielleicht aus dem Eff-Eff kennen. Unter WPF läuft aber gewöhnlich alles etwas anders, sodass wir hier mit den Grundlagen einsteigen und uns dann Schritt für Schritt Themen wie der Datenbindung et cetera widmen. Außerdem dürfen wir vorwegnehmen, dass sich hier einige Möglichkeiten mehr ergeben …

Wenn Sie ein ComboBox-Steuerelement zu einem Fenster hinzufügen und das Debugging starten, erhalten Sie ein einfaches Kombinationsfeld, das beim Aufklappen keine Werte anzeigt und in das Sie auch keinen Text einfügen können. Das ist der erste Unterschied im Vergleich zu einem Access-Kombinationsfeld – dort können Sie zumindest gleich einen Wert eintippen.

Eine recht einfache Definition eines solchen ComboBox-Steuerelements sieht so aus:

<ComboBox x:Name="comboBox" HorizontalAlignment="Left" Margin="127,10,0,0" VerticalAlignment="Top" Width="120"/>

ComboBox mit statischen Werten

Soll die ComboBox beim Öffnen des Fensters immer die gleichen Werte anzeigen, können Sie diese ganz einfach durch eine entsprechende XAML-Definition hinzufügen. Dies ähnelt dann dem Anlegen von Einträgen in einem HTML-Select-Element, allerdings verwenden Sie für jeden neuen Eintrag ein ComboBoxItem-Element, das Sie unterhalb des ComboBox-Elements anlegen:

<ComboBox x:Name="comboBox" ... >
     <ComboBoxItem>Eintrag 1</ComboBoxItem>
     <ComboBoxItem>Eintrag 2</ComboBoxItem>
     <ComboBoxItem>Eintrag 3</ComboBoxItem>
     <ComboBoxItem>Eintrag 4</ComboBoxItem>
</ComboBox>

Während Sie diese Einträge unterhalb des ComboBox-Elements hinzufügen, zeigt der XAML-Editor direkt die Einträge in der Vorschau an (siehe Bild 1).

WPF-Fenster mit einer Schaltfläche in drei verschiedenen Designs

Bild 1: WPF-Fenster mit einer Schaltfläche in drei verschiedenen Designs

Im Betrieb erscheint dieses Kombinationsfeld nun wie in Bild 2. Beim Aufklappen zeigt es die vier Einträge an, die Auswahl eines Eintrags trägt diesen oben in das Steuerelement ein. Nun wollen wir dies noch erweitern, und zwar erstens durch die Eingabe von Texten durch den Benutzer.

Statisches Kombinationsfeld mit vier Einträgen

Bild 2: Statisches Kombinationsfeld mit vier Einträgen

ComboBox bedienen

Natürlich wissen Sie, dass Sie eine ComboBox mit einem Mausklick auf den Pfeil nach unten öffnen und dass Sie dort Text eingeben und Einträge auswählen können. Aber haben Sie auch schon einmal nur mit der Tastatur auf eine ComboBox zugegriffen Sie können diese nämlich auch durch Betätigen der Taste F4 öffnen oder schließen. Auch die Tastenkombinationen Alt + Nach oben oder Alt + Nach unten öffnen und schließen die Liste des ComboBox-Steuerelements. Schließlich blättern Sie auch bei nicht ausgeklappter Liste mit den Tasten Nach oben und Nach unten durch die Einträge, wobei Nach oben vom obersten Element und Nach unten vom untersten Element aus keine Auswirkungen zeigen.

Eingabe von Werten aktivieren

Um das Eingabefeld des Kombinationsfeldes zu aktivieren, fügen Sie einfach nur das Attribut IsEditable zum ComboBox-Element hinzu und stellen es auf den Wert True ein:

<ComboBox x:Name="cboMitEingabe" ... IsEditable="True">
     <ComboBoxItem Content="Eintrag 1"/>
     ...
</ComboBox>

Damit können Sie nun Werte wie in Bild 3 eingeben. Allerdings fügt dies den Wert noch nicht zur Auswahlliste hinzu.

Hinzufügen eines eigenen Textes

Bild 3: Hinzufügen eines eigenen Textes

Wenn Sie den Anfangsbuchstaben eines der bereits in der Liste enthaltenen Einträge eingeben, wird dieser übrigens gleich als Eintrag vorgeschlagen (siehe Bild 4) – wie auch unter Access. Nach der Eingabe eines Wertes in das Textfeld prüft die ComboBox, ob dieser Wert bereits in der Liste enthalten ist. Falls ja, wird dieser Eintrag als markiert gekennzeichnet – später schauen wir uns an, wie wir dies nutzen können. Ist der Wert nicht vorhanden, hat die Liste keinen selektierten Eintrag. In beiden Fällen wird der Wert jedoch in die Eigenschaft Text des ComboBox-Steuerelements eingetragen.

Autoergänzung standardmäßig

 

Schreibe einen Kommentar