XAMLで列挙型

2024年12月27日金曜日

C#

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

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

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

XAML:

<Window
    ...
    xmlns:local="clr-namespace:WpfApp1"
    ...>
    

XAML:

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

列挙型を選択するComboBox

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

XAML:

<Window
    ...
    xmlns:system="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:WpfApp1"
    ...>
    <Window.Resources>
        <ObjectDataProvider
            x:Key="FileTypes"
            ObjectType="{x:Type system:Enum}"
            MethodName="GetValues">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="local:FileType" />
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    

XAML:

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

参照