2016-06-17 49 views
0

我有一個使用的組合框,其源極被綁定到Enum類型的IEnumerable的用戶控制(I有幾種不同類型的用戶定義的枚舉到在用戶控件中使用,因此請在我的用戶控件的後臺代碼中使用通用的IEnumerable<Enum>)。但是,當我嘗試使用用戶控件在項目的後備代碼中創建IEnumberable列表時,我無法將我自己的枚舉類型的IEnumerable轉換爲泛型枚舉IEnumerable如何IEnumerable的轉換<MySpecificEnumType>到通用的IEnumerable <Enum>在WPF(C#)

我得到以下錯誤:

Unable to cast object of type MyEnumType[] to type System.Enum[] when I attempt to convert to Enum[] . The code giving this error is:

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

我應該如何從我的枚舉類型的列表轉換爲通用Enum類型的列表?或者我應該在用戶控件的後臺代碼中使用不同類型的IEnumerable

+1

這是一個壞主意。不要在用戶控件中使用* generic *'IEnumerable '。使用非泛型'IEnumerable'作爲'ComboBox'的項目源。 – Dennis

回答

0

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

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

難道不是'...演員>();'? – Zack

+0

@Zack不,你只需指定元素的類型。 –

相關問題