◆ Enum.GetValues

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

この場合は省略すればいいのですが enum の最初の値をコードで指定したいときは 0 をキャストするのがいいです

enum の方で最初の要素を一時的にコメントアウトしても大丈夫です