ホームページ >バックエンド開発 >C++ >列挙型を WPF ComboBox コントロールにバインドするにはどうすればよいですか?

列挙型を WPF ComboBox コントロールにバインドするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 19:16:41803ブラウズ

How to Bind Enums to WPF ComboBox Controls?

WPF ComboBox コントロールへの列挙型のバインド

ComboBox 内の項目として列挙型値を表示しようとする場合、DataContext から直接バインドするだけでは十分ではない場合があります。これに対処するために、コードと XAML バインディングによる 2 つのアプローチを紹介します。

コードベースのバインディング

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

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

これは列挙値を取得し、それらを ComboBox の項目として割り当てます。 source.

XAML Binding

XAML バインディングの場合、ObjectDataProvider を使用します:

<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
                  SelectedItem="{Binding Path=CurrentEffectStyle}" />

Window の Resources セクション内で、ObjectDataProvider を定義します:

<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues"
                            ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="StyleAlias:EffectStyle"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>

必要なものを忘れずに宣言してくださいnamespaces:

xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"

これらのメソッドは、WPF で列挙型を ComboBox コントロールにバインドする簡単かつ効果的な方法を提供します。

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

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