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;
以上です。