2017-02-22 92 views
0

我在WPF(C#)中編程。我填充ComboBox使用此項功能:從ComboBox獲取任何枚舉

public static void PopulateComboBox(ComboBox cmb, Type type) 
{ 
    foreach (string name in Enum.GetNames(type)) 
    { 
     cmb.Items.Add(name); 
    } 
} 

現在我需要這樣的方法(如下圖所示),以獲得any enum作爲輸出:

public static enum PopulateComboBox(ComboBox cmb, string nameOfEnum, Type type) 
{ 

} 

我怎麼能寫這樣的功能?

+0

你是指'公共靜態枚舉...'嗎?不確定你在問什麼,你的問題是什麼? – Gusman

+0

你不能返回'enum'。我認爲你的意思是返回Enum類型的東西。 –

+0

'列表名稱=新列表()的目的是什麼? – KernelMode

回答

0

我會考慮將枚舉值直接添加到組合框,而不是他們的名字。

另一種選擇是Enum.Parse(Type enumType, string value)

-1

最後我在this page找到了我的答案。我的回答是:

public static T ToEnum<T>(this string value) 
{ 
    return (T) Enum.Parse(typeof(T), value, true); 
} 

比如我把它用這種方式:

BorderType borderType = ToEnum<BorderType>("Constant"); 

其中BorderTypeenum(來自OpenCV的);