LoginSignup
11
11

More than 5 years have passed since last update.

ComboBoxにEnumを列挙する。

Last updated at Posted at 2013-09-01

enumに日本語も使えるので、そのままコンボボックスに表示して選択したいと考えまして、こんな結果になりました。

始めにenumを作成します。

サンプル列挙体
public enum eSample{
    リンゴ,
    ゴリラ,
    ラッパ,
}

次にXAMLを次のように書きました。

XAML
<ComboBox Name="cbSample" DisplayMemberPath="Name"/>

enumそのものとenumの文字列を格納してクラスを作ります。

enum格納用クラス
class cbItems<Type>
{
    public Type Code;
    public string Name{get;set;}
}

enumそのものとenumの文字列を全て呼び出す関数を作成します。

列挙関数
private IEnumerable<cbItems<Types>> MakeComboItem<Types>()
{
    foreach( Types dow in Enum.GetValues( typeof( Types ) ) ) {
        yield return new cbItems<Types>
        {
            Code = dow,
            Name = dow.ToString(),
        };
    }
}

コンボボックスのItemSourceに関数で作成した 項目群を入れて、コンボボックスに表示します。

コンボボックスに表示
cbSample.ItemsSource = MakeComboItem<eSample>();

コンボボックスで選択された、enumを取得してみます。

選択されたenumを取得
eSample Data = (cbSample.SelectedItem as cbItems<eSample>).Code;

以上です。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11