WPFで列挙体をListBoxにBindする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

前回は static な配列を ListBox にバインドしてみたので、今回は列挙型のメンバーをリストボックスやコンボボックスに表示してみます。

方法 : 列挙値にバインドする方法 : 列挙値にバインドする

参考にした MSDN の情報です。

スポンサーリンク

名前空間の追加

System.Enum のメソッドを使うので、System 名前空間を追加します。XAML のルート要素の xmlns に並んでいるところに下記のように追加しましょう。また、列挙体の属している名前空間も同様に追加しておきます。

リソースに追加

Resources にこんな感じで書きます。こうすることで Detectors に列挙体の値が格納されます。
x:Type の TypeName に列挙したい列挙体の型名を渡します。このとき名前空間指定が必要ですので、忘れずに。

ItemsSource に Bind

定義した ObjectDataProvider をリストボックスの ItemsSource にバインドすれば完了です。選択されている値は SelectedValue に Bind すれば OK です。

これでリストボックスには列挙型の各メンバーを文字列化したものが表示されるはずです。

値コンバーターの併用

IValueConverter を併用するときは ItemTemplate に設定しましょう(このあたりは 前回の記事 も参照してください)。

前回と同様にこんな感じで表示されます。

列挙型のメンバーがリストボックスに表示された

最後までお読みいただきありがとうございました m(_ _)m

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存