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

Comment lier facilement une énumération à une ComboBox WPF ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 02:51:39326parcourir

How to Easily Bind an Enum to a WPF ComboBox?

Liaison d'une énumération à une ComboBox dans WPF : une approche claire et concise

Pour ceux qui recherchent une approche simple pour lier une énumération à une ComboBox dans WPF, cet article fournira un résumé succinct guide.

Problème :

Tentative de lier une énumération à une ComboBox à l'aide de la propriété BindingPath, pour constater que les valeurs de l'énumération ne sont pas visibles en tant qu'éléments dans le ComboBox.

Solution :

Liaison basée sur le code :

Dans le gestionnaire d'événements Window Loaded, utilisez ce code :

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

Ce code récupère les valeurs enum et les définit comme ItemsSource pour le ComboBox.

Liaison XAML :

Pour lier en XAML, utilisez un ObjectDataProvider :

<Window ...>
    <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>
</Window>

N'oubliez pas de spécifier l'espace de noms et l'assembly à l'aide de xmlns .

Cette approche fournit un moyen clair et simple de lier une énumération à une ComboBox WPF, sans les complexités des chaînes d'affichage supplémentaires.

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