Maison >développement back-end >C++ >Comment lier des énumérations aux contrôles WPF ComboBox ?

Comment lier des énumérations aux contrôles WPF ComboBox ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 19:16:41742parcourir

How to Bind Enums to WPF ComboBox Controls?

Liaison d'énumérations aux contrôles WPF ComboBox

Lorsque vous tentez d'afficher des valeurs d'énumération en tant qu'éléments dans une ComboBox, la liaison directement à partir du DataContext peut ne pas suffire. Pour résoudre ce problème, nous présentons deux approches pour résoudre ce problème : via le code et la liaison XAML.

Liaison basée sur le code

Dans le gestionnaire d'événements Loaded de la fenêtre, exécutez le code suivant :

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

Ceci récupère les valeurs d'énumération et les attribue comme source d'éléments de la ComboBox.

XAML Liaison

Pour la liaison XAML, employez un ObjectDataProvider :

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

Dans la section Ressources de la fenêtre, définissez l'ObjectDataProvider :

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

N'oubliez pas de déclarer les espaces de noms nécessaires :

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

Ces méthodes fournissent des moyens simples et efficaces de lier des énumérations aux contrôles ComboBox dans WPF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn