Maison > développement back-end > C++ > Comment lier des valeurs Enum à un contrôle WPF ComboBox ?

Comment lier des valeurs Enum à un contrôle WPF ComboBox ?

DDD
Libérer: 2025-01-05 21:50:41
original
607 Les gens l'ont consulté

How to Bind Enum Values to a WPF ComboBox Control?

Liaison d'énumérations aux contrôles WPF ComboBox : une approche simple

Lorsque vous travaillez avec WPF (Windows Présentation Framework), il est courant de rencontrer le besoin de lier des données à un Contrôle ComboBox. Dans les cas où les données sont représentées sous forme d'énumération, afficher les valeurs d'énumération directement dans les éléments ComboBox peut être simple.

Considérez le scénario suivant : vous disposez d'une classe qui encapsule diverses propriétés et vous souhaitez lier votre ComboBox à l’une de ces propriétés, qui est représentée sous forme d’énumération. Définir DataContext sur l’instance de classe et utiliser une syntaxe de liaison dans le fichier XAML est une approche typique. Cependant, cette approche peut ne pas entraîner l'apparition des valeurs d'énumération sous forme d'éléments dans la ComboBox.

Solution 1 : Liaison à partir du code

Pour afficher les valeurs d'énumération directement dans la ComboBox à partir du code, les étapes suivantes peut être pris :

  1. Dans le gestionnaire d'événements Loaded de la fenêtre, insérez ce qui suit code :
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
Copier après la connexion

Cette ligne récupère les valeurs d'énumération, les convertit dans le type correct et les affecte à la propriété ItemsSource de la ComboBox.

Solution 2 : liaison dans XAML

Alternativement, la liaison peut être établie en XAML à l'aide d'un ObjectDataProvider :

<Window>
    <Window.Resources>
        <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues"
                            ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="Motion.VideoEffects:EffectStyle"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid>
        <ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
                  SelectedItem="{Binding Path=CurrentEffectStyle}" />
    </Grid>
</Window>
Copier après la connexion

Ce code XAML définit un ObjectDataProvider au sein des ressources de la fenêtre. La propriété MethodName est définie sur GetValues, qui récupère les valeurs d'énumération. La propriété ObjectType spécifie le type de l'énumération et la propriété MethodParameters fournit le type de l'énumération pour laquelle le fournisseur de données doit récupérer les valeurs.

Il est important de noter que dans le code XAML, l'espace de noms et l'assembly du type enum doit être fourni :

xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
Copier après la connexion

En utilisant ces approches, il devient possible de lier des valeurs enum aux contrôles WPF ComboBox, offrant un moyen simple d'afficher énumérations dans une liste déroulante.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal