XAML 如何在WPF中将IEnumerable转换< MySpecificEnumType>为泛型IEnumerable< Enum>(C#)

js5cn81o  于 2022-12-07  发布在  C#
关注(0)|答案(1)|浏览(156)

我有一个使用组合框的用户控件,该组合框的源绑定到Enum类型的IEnumerable(我有几种不同类型的用户定义枚举要在用户控件中使用,因此在我的用户控件的支持代码中使用泛型IEnumerable<Enum>)。但是,当我尝试使用用户控件在项的支持代码中创建IEnumerable列表时,我无法将我自己的枚举类型的IEnumerable转换为泛型枚举IEnumerable
出现以下错误:
无法将MyEnumType[]类型的对象转换为System.Enum[]类型
当我尝试转换为Enum[]时。
导致此错误的代码是:

public IEnumerable<Enum> MyEnums { get { return (Enum[])Enum.GetValues(typeof(MySpecificEnumType)); } }

我应该如何从枚举型别的清单转换成泛型Enum型别的清单?或者我应该在使用者控件的支援程式码中使用不同型别的IEnumerable

yruzcnhs

yruzcnhs1#

如果你真的希望得到IEnumerable<Enum>,你可以使用Cast扩展方法:

return Enum.GetValues(typeof(MySpecificEnumType)).Cast<Enum>();

相关问题