2017-02-22 100 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的);