ホームページ >バックエンド開発 >C++ >Enum を WPF ComboBox に簡単にバインドするにはどうすればよいですか?

Enum を WPF ComboBox に簡単にバインドするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-05 02:51:39333ブラウズ

How to Easily Bind an Enum to a WPF ComboBox?

WPF で列挙型を ComboBox にバインドする: 明確で簡潔なアプローチ

列挙型をコンボボックスにバインドする簡単なアプローチを探している人向けWPF の ComboBox については、この記事で簡潔に説明します。 guide.

問題:

BindingPath プロパティを使用して enum を ComboBox にバインドしようとしましたが、enum 値が項目として表示されないことがわかりました。 ComboBox.

解決策:

コードベースのバインド:

Window Loaded イベント ハンドラーで、次のコードを利用します。

yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();

このコードは列挙値を取得して設定します。 ComboBox の ItemsSource として使用します。

XAML バインディング:

XAML でバインドするには、ObjectDataProvider を使用します:

<Window ...>
    <Window.Resources>
        <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues"
                            ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="StyleAlias:EffectStyle"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid>
        <ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
                  SelectedItem="{Binding Path=CurrentEffectStyle}" />
    </Grid>
</Window>

必ずxmlns を使用した名前空間とアセンブリ。

このアプローチは次のことを提供します。追加の表示文字列による複雑さを必要とせずに、列挙型を WPF ComboBox にバインドする明確かつ簡単な方法です。

以上がEnum を WPF ComboBox に簡単にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。