UWP ComboBox:通过枚举的ItemsSource填充

时间:2016-10-28 10:15:17

标签: c# combobox enums uwp

所以我想用枚举中的内容填充一个组合框项目源(显然稍后会检索这些值)。

使用以下两种方法中的任何一种,填充都可以正常工作,但不能与我想要实现的方法相匹配。

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

我可以使用简单的(VirtualKey)comboBox.SelectedItem检索值而不会出现问题。问题是,下拉菜单中的名称都是不可读的。 enter image description here

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

按预期显示名称但我无法像使用其他指令一样检索该值。

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

  

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

     

按预期显示名称但我无法像使用其他指令一样检索该值。

我不知道您是如何获得所选值的,但是要从枚举值名称转换为其值,您可以使用Enum.Parse(Type, String) method

或者您可以将ComboBox.SelectedIndex绑定到枚举变量,例如使用我的EnumToIntConverter之类的内容。

答案 1 :(得分:1)

这里也讨论了这种令人费解的行为:

UWP - binding Enum differences

即使是简单的ToString()电话,也可以解决这个问题。但是,出于某种原因,直接XAML绑定中的某些Windows运行时枚举显示为IReference