WPF でセレクトボックスに enum の値を簡単に入れる
◆ Enum.GetValues
enum の値をセレクトボックスの選択肢にしたいときにひとつひとつ書いていくのは面倒です
enum が変わったときに候補を変え忘れるなんてこともでてきますのでひとつひとつ候補を書かずに自動でできるようにしたいです
enum のリストは
サンプル
[xaml]
[cs]
この場合は省略すればいいのですが enum の最初の値をコードで指定したいときは 0 をキャストするのがいいです
enum の方で最初の要素を一時的にコメントアウトしても大丈夫です
enum が変わったときに候補を変え忘れるなんてこともでてきますのでひとつひとつ候補を書かずに自動でできるようにしたいです
enum のリストは
Enum.GetValues(typeof(Mode))
で作れますサンプル
[xaml]
<ComboBox ItemsSource="{Binding color_list}" SelectedItem="{Binding color}" />
[cs]
public enum Color
{
Red,
Blue,
Green,
Yellow,
Purple,
Orange,
Black,
White,
}
private class BindingData
{
public IEnumerable<Color> color_list { get; }
= Enum.GetValues(typeof(Color)).Cast<Color>();
public Color color { get; set; } = (Color)0;
}
public MainWindow()
{
this.DataContext = this.BindingData();
}
{
Red,
Blue,
Green,
Yellow,
Purple,
Orange,
Black,
White,
}
private class BindingData
{
public IEnumerable<Color> color_list { get; }
= Enum.GetValues(typeof(Color)).Cast<Color>();
public Color color { get; set; } = (Color)0;
}
public MainWindow()
{
this.DataContext = this.BindingData();
}
この場合は省略すればいいのですが enum の最初の値をコードで指定したいときは 0 をキャストするのがいいです
enum の方で最初の要素を一時的にコメントアウトしても大丈夫です