将对象转换为枚举类型 C#

15

我已将enum列表绑定到下拉框中。现在我想要使用SelectedItem返回枚举,但它当前以object类型返回。我该如何将这个对象转换为我的枚举?

我的框架是Windows Phone 7上的Silverlight。

2个回答

29

直接进行类型转换:

MyEnum selected = (MyEnum)cboCombo.SelectedItem;

请注意,在这种情况下您无法使用 as 强制转换,因为枚举是值类型。


哇,现在这个可以工作了。出于某种原因,编译器告诉我MyEnum正在该语句中被用作变量。 - Shawn Mclean
@Jon Seigel,关于“as”转换的评论很好。Visual Studio在这里是否会在后台执行“拆箱”操作? - gonzobrains

6

你尝试过这个吗?

YourEnum abc = (YourEnum) Enum.Parse(typeof(YourEnum), yourObject.ToString());

1
这可能适用于字符串属性,但不适用于 SelectedItem - leppie
@leppie:我认为,由于某种原因,类型转换对OP不起作用,所以他可以尝试这个技巧。 - viky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接