2011-06-23 6 views

答えて

7

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)); 
} 

次にあなたが返される辞書項目であなたのコンボボックスを埋めることができます。

だけでなく、次を参照してください:あなたが使用することができます

Dictionary enumeration in C#

Enum to dictionary

+0

+1私はそれが好きでした! – Dummy01

1

Enum.GetValues(typeof(MyEnumType)) 

と、ちょうどその

編集からコンボボックスの項目を読み込みます:もちろんreflを使う

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

とでgetValuesはあなたにその列挙のために可能な値が得られます:あなたは一般的に次のように列挙型を渡すことができます列挙型:)

6

を取得するection。

使い方は少し奇妙に次のようになります。

Method(EnumType.Value) 

ので、それはだけでなく、他のアイデアに適合しない場合があります。

3

この方法を使用すると、キャンこのように列挙のいずれかのタイプを追加します。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

を、私は、これが最良の例で説明されていると思う:

enum MyEnum 
{ 
    One, 
    Two, 
    Three 
} 
:あなたが列挙型を持っている

セイ

次のようなメソッドを宣言できます。

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

     // you can iterate over enumValues with foreach 
    } 

そして、あなたはそうのようにそれを呼び出します:あなたが持っている問題が何であるかを

MyEnumMethod(new MyEnum()); 
関連する問題