2016-10-28 34 views
0

所以我想用enum中的內容填充組合框項目源(並且顯然在稍後檢索值)。UWP組合框:通過枚舉的項目源人口

使用以下兩種方法中的任何一種,填充都可以正常工作,但兩者都不匹配我想要實現的功能。

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

我可以使用簡單的(VirtualKey)comboBox.SelectedItem檢索值而不發出問題。問題是,下拉菜單中的名稱都是不可讀的。 enter image description here

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

顯示如預期,但我不能像檢索與其他指令值的名稱。

任何想法如何解決這種情況?

回答

1

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

顯示如預期,但我不能像檢索與其他指令值的名稱。

我不知道如何獲取選定的值,但對於從枚舉值名稱轉換爲其值,您可以使用Enum.Parse(Type, String) method

或者您可以將ComboBox.SelectedIndex綁定到您的枚舉變量,例如使用像我的EnumToIntConverter之類的東西。

+0

非常感謝! Enum.Parse方法完美無缺:) – Cornelius

1

這令人費解的行爲也是在這裏討論:

UWP - binding Enum differences

即使是簡單的通話ToString()克服了這個問題。但是,由於某些原因,某些Windows運行時枚舉以直接XAML綁定方式顯示爲IReference