CustomScript

ページ

2015年12月21日月曜日

WPF勉強(12) ComboBoxとEnum

  • WPF
  • .NET 4.5
  • C# 6.0
enumをComboBoxで使う方法です。
2パターンの実装サンプルを紹介します。

Enum名で選択する

ComboBox で選択させるためにはとにかく選択項目のリストが必要です。
Enum.GetValues() で Enum のリストを作成し、それを ItemSource としてバインドします。

対応する文字列で選択する

Enumと文字列がペアになったリストを使います。今回は Dictionary 型を使用した例になります。
Dictionary を作成し、それを ItemSource としてバインドします。 SelectedValuePath で選択されるプロパティ名、 DisplayMemberPath で表示するプロパティ名を指定します。 今回の場合は Dictionary 型なので "Key" と "Value" になります。

サンプルコード

public enum Animal
{
Cat,
Dog,
Tiger,
Elephant,
}
view raw Enum.cs hosted with ❤ by GitHub
// Enum配列のプロパティ
public Animal[] AnimalEnums { get; } = (Animal[])Enum.GetValues(typeof(Animal));
// Enum名前辞書のプロパティ
public Dictionary<Animal, string> AnimalNames { get; } = new Dictionary<Animal, string>
{
[Animal.Cat] = "猫",
[Animal.Dog] = "犬",
[Animal.Tiger] = "虎",
[Animal.Elephant] = "ゾウ",
};
// 選択値を保存するプロパティ
public Animal MyPet { get; set; } = Animal.Cat;
<ComboBox ItemsSource="{Binding AnimalEnums}"
SelectedValue="{Binding MyPet}" />
<ComboBox ItemsSource="{Binding AnimalNames}" SelectedValuePath="Key" DisplayMemberPath="Value"
SelectedValue="{Binding MyPet}" />

0 件のコメント:

コメントを投稿