2016-10-28 1 views
0

Ich möchte also eine Combobox Elemente Quelle mit dem Inhalt auf einem Enum auffüllen (und natürlich die Werte später abrufen).UWP ComboBox: ItemsSource-Population durch enum

Population funktioniert gut mit einem der beiden folgenden Ansätze, aber keiner entspricht dem, was ich erreichen möchte.

Ich kann die Werte ohne Problem mit einem einfachen (VirtualKey) ComboBox.SelectedItem abrufen. Das Problem ist, dass die Namen im Dropdown-Menü alle nicht lesbar sind. enter image description here

comboBox.ItemsSource = Enum.GetNames(typeof(VirtualKey)); 

Zeigt die Namen wie beabsichtigt, aber ich kann nicht den Wert wie mit dem anderen Befehl abrufen.

Irgendwelche Ideen, wie man die Situation löst?

Antwort

1

comboBox.ItemsSource = Enum.GetNames(typeof(VirtualKey));

Zeigt die Namen wie beabsichtigt, aber ich kann den Wert wie mit dem anderen Befehl nicht abgerufen werden.

Ich weiß nicht, wie Sie den ausgewählten Wert bekommen, sondern von ENUM-Wert Name auf seinen Wert für die Umwandlung, können Sie die Enum.Parse(Type, String) method verwenden.

Oder Sie können die ComboBox.SelectedIndex an Ihre Enum-Variable zum Beispiel mit etwas wie meine EnumToIntConverter binden.

+0

Vielen Dank! Enum.Parse-Methode funktioniert einwandfrei :) – Cornelius

1

Dieses rätselhafte Verhalten wurde auch hier diskutiert:

UWP - binding Enum differences

Selbst einfache windet ToString() Aufruf dieses Problem. Aus irgendeinem Grund werden jedoch einige Windows Runtime-Enums in direkter XAML-Bindung mit IReference angezeigt.

Verwandte Themen