XAMLで列挙型

2024年12月27日金曜日

C# WPF

記事のカテゴリー: C#、.NET 9、WPF

XAMLでプロパティ値に列挙型を指定する

例えば、列挙型FileTypeFolderという値を持っているとすると次のように書けます。

XAML:

  1. <Window
  2. ...
  3. xmlns:local="clr-namespace:WpfApp1"
  4. ...>

XAML:

  1. <ComboBox SelectedItem="{x:Static local:FileType.Folder}" />

列挙型を選択するComboBox

列挙型FileTypeのすべての値をComboBoxに展開したいときは次のように書けます。

XAML:

  1. <Window
  2. ...
  3. xmlns:system="clr-namespace:System;assembly=mscorlib"
  4. xmlns:local="clr-namespace:WpfApp1"
  5. ...>
  6. <Window.Resources>
  7. <ObjectDataProvider
  8. x:Key="FileTypes"
  9. ObjectType="{x:Type system:Enum}"
  10. MethodName="GetValues">
  11. <ObjectDataProvider.MethodParameters>
  12. <x:Type TypeName="local:FileType" />
  13. </ObjectDataProvider.MethodParameters>
  14. </ObjectDataProvider>
  15. </Window.Resources>

XAML:

  1. <ComboBox ItemsSource="{Binding {StaticResource FileTypes}}" />

参照