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

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

Susan Sarandon
Susan Sarandonオリジナル
2025-01-05 01:09:40482ブラウズ

How to Bind an Enum to a WPF ComboBox?

WPF での Enum から ComboBox へのバインディング

質問

追加の表示文字列を使用せずに列挙値を ComboBox 内の項目として表示しようとする試みは、失敗することが判明しました。 XAML コードではクラス プロパティへのバインドが使用されていますが、列挙値は表示されません。

回答

コードによるバインド

ウィンドウ内で読み込まれましたイベント ハンドラー。ItemsSource プロパティに列挙型を設定します。値:

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

XAML でのバインド

ObjectDataProvider の使用:

<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>

名前空間マッピング

エイリアスの使用法に注意してくださいnamespaces:

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

名前空間とアセンブリの適切なマッピングについては、MSDN ドキュメントを参照してください。

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

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