2011-06-23 26 views

Odpowiedz

7

Odnosząc się 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)); 
} 

Następnie można wypełnić ComboBox z zwróconych słownikowych przedmiotów.

Patrz następujące także:

Dictionary enumeration in C#

Enum to dictionary

+0

+1 Podoba mi się to! – Dummy01

1

Można użyć:

Enum.GetValues(typeof(MyEnumType)) 

i po prostu wypełnić elementy pola kombi z tego

Edytuj : i oczywiście użyj refl ekcja aby uzyskać typ enum :)

6

można przekazać enum ogólnie tak:

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

A getValues ​​daje wartości, które są możliwe do tego wyliczenia.

Wykorzystanie byłoby trochę dziwne:

Method(EnumType.Value) 

więc może nie pasować, a także inne pomysły.

3

Stosując tę ​​metodę, to cann dodać dowolny typ enum tak: 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

myślę, że to jest najlepiej wytłumaczyć na przykładzie:

że masz ENUM:

enum MyEnum 
{ 
    One, 
    Two, 
    Three 
} 

Można zadeklarować metodę, taką jak:

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

     // you can iterate over enumValues with foreach 
    } 

I byłoby to nazwać tak:

MyEnumMethod(new MyEnum()); 
Powiązane problemy