所以我想用枚举中的内容填充一个组合框项目源(显然稍后会检索这些值)。
使用以下两种方法中的任何一种,填充都可以正常工作,但不能与我想要实现的方法相匹配。
comboBox.ItemsSource = Enum.GetValues(typeof(VirtualKey));
我可以使用简单的(VirtualKey)comboBox.SelectedItem检索值而不会出现问题。问题是,下拉菜单中的名称都是不可读的。
comboBox.ItemsSource = Enum.GetNames(typeof(VirtualKey));
按预期显示名称但我无法像使用其他指令一样检索该值。
任何想法如何解决这个问题?
答案 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
。