Maison >développement back-end >C++ >Comment lier facilement des énumérations à une ComboBox WPF ?

Comment lier facilement des énumérations à une ComboBox WPF ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-05 04:27:41330parcourir

How to Easily Bind Enums to a WPF ComboBox?

Liaison d'une énumération à un contrôle ComboBox WPF

Dans les environnements de développement d'interface (IDE) tels que Visual Studio, la liaison d'énumérations à des contrôles combobox peut présenter défis. Cet article fournit un guide simple pour réaliser cette liaison sans complexités supplémentaires.

Pour afficher les valeurs d'énumération directement dans une liste déroulante sans utiliser de chaînes d'affichage, suivez ces étapes :

À partir du code :

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

En XAML :

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

Cependant, pour l'approche XAML, un ObjectDataProvider est requis pour créer un objet disponible comme source de liaison :

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

Notez la déclaration xmlns :

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

Cette ligne mappe les espaces de noms et les assemblys, comme décrit dans la documentation Microsoft Developer Network (MSDN). La mise en œuvre de ces étapes vous permettra de lier avec succès des énumérations à un contrôle combobox dans WPF, offrant ainsi une approche plus propre et plus simple.

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