【发布时间】:2011-04-25 13:22:48
【问题描述】:
我有一个 Silverlight (WP7) 项目,想将一个枚举绑定到一个列表框。这是一个具有自定义值的枚举,位于类库中。我该怎么做?
【问题讨论】:
标签: c# xaml windows-phone-7
我有一个 Silverlight (WP7) 项目,想将一个枚举绑定到一个列表框。这是一个具有自定义值的枚举,位于类库中。我该怎么做?
【问题讨论】:
标签: c# xaml windows-phone-7
【讨论】:
在 Silverlight(WP7) 中,Enum.GetNames() 方法不可用。您可以使用以下
public class Enum<T>
{
public static IEnumerable<string> GetNames()
{
var type = typeof(T);
if (!type.IsEnum)
throw new ArgumentException("Type '" + type.Name + "' is not an enum");
return (
from field in type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)
where field.IsLiteral
select field.Name).ToList<string>();
}
}
静态方法将返回可枚举的字符串集合。您可以将其绑定到列表框的项目源。喜欢
this.listBox1.ItemSource = Enum<Colors>.GetNames();
【讨论】:
ListBox 的SelectedItem 属性。检查以下可以帮助您的示例。 sites.google.com/site/html5tutorials/BindingEnum.zip
将枚举转换为列表(或类似列表) - 根据 How do I convert an enum to a list in C#?
然后绑定到转换后的列表。
【讨论】: