有人可以举个例子,告诉我如何在Windows Phone 8上将枚举绑定到listpicker吗?
在互联网上找不到任何内容......而且缺乏有关此工具包的文档也无济于事。
由于
答案 0 :(得分:3)
绑定很容易。唯一的问题是在Windows手机中无法使用扩展方法GetNames()
。但是,你可以写一个。
public static class EnumExtensions {
public static IEnumerable<string> GetNames<TEnum>() where TEnum : struct {
var type = typeof(TEnum);
if (!type.IsEnum)
throw new ArgumentException(String.Format("Type '{0}' is not an enum", type.Name));
return (
from field in type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)
where field.IsLiteral
select field.Name)
.ToList<string>();
}
}
一旦你拥有它,很容易将它绑定到任何列表。
public enum MyEnum {
v1, v2, v3
}
// Binding
myListPicker.ItemsSource = EnumExtensions.GetNames<MyEnum>();
// Getting selected value
var myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), myListPicker.SelectedItem.ToString());