1
누군가 Windows Phone 8에서 listpicker에 열거 형을 바인딩하는 방법을 보여줄 수 있습니까?Windows Phone 8에서 enum 및 listpicker를 바인딩하는 방법
인터넷에서 아무 것도 찾을 수 없으며이 툴킷과 관련된 설명서가 없어 도움이되지 않습니다.
감사합니다.
누군가 Windows Phone 8에서 listpicker에 열거 형을 바인딩하는 방법을 보여줄 수 있습니까?Windows Phone 8에서 enum 및 listpicker를 바인딩하는 방법
인터넷에서 아무 것도 찾을 수 없으며이 툴킷과 관련된 설명서가 없어 도움이되지 않습니다.
감사합니다.
쉬운 바인딩입니다. 유일한 문제는 Windows Phone에서 확장 방법 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());