2011-06-23 14 views

Respuesta

7

Refiriéndose a Convert Enum To Dictionary:

public static IDictionary<String, Int32> ConvertEnumToDictionary<K>() 
{ 
if (typeof(K).BaseType != typeof(Enum)) 
{ 
    throw new InvalidCastException(); 
} 

return Enum.GetValues(typeof(K)).Cast<Int32>().ToDictionary(currentItem => Enum.GetName(typeof(K), currentItem)); 
} 

Entonces usted puede llenar su ComboBox con los elementos del diccionario devueltos.

refieren a las siguientes, así:

Dictionary enumeration in C#

Enum to dictionary

+0

+1 ¡Me gustó eso! – Dummy01

1

que puede utilizar:

Enum.GetValues(typeof(MyEnumType)) 

y simplemente rellenar los elementos del cuadro combinado de ese

Editar : y por supuesto usar refl reflexión para obtener el tipo de enumeración :)

6

Puede pasar una enumeración genérica de esta manera:

private void Method(Enum tEnum) 
{ 
    Enum.GetValues(tEnum.GetType()); 
} 

Y los GetValues ​​le dará los valores que son posibles para que la enumeración.

uso sería un poco extraño:

Method(EnumType.Value) 

por lo que no podría encajar, así como otras ideas.

3

Usando este método, se agregan los cc cualquier tipo de enumeración como esto: AddItems(myCombobox, typeof(Options))

public void AddItems (ComboBox cboBox, Type enumType) 
    { 
    cboBox.Items.AddRange(Enum.GetValues (enumType).Cast<object>().ToArray()); 
    } 

    enum Options 
    { 
    Left, Right, Center 
    } 
6

creo que esto se explica mejor con un ejemplo:

Digamos que tiene una enumeración:

enum MyEnum 
{ 
    One, 
    Two, 
    Three 
} 

Puede declarar un método como:

public static void MyEnumMethod(Enum e) 
    { 
     var enumValues = Enum.GetValues(e.GetType()); 

     // you can iterate over enumValues with foreach 
    } 

Y ustedes lo llaman así:

MyEnumMethod(new MyEnum()); 
Cuestiones relacionadas