178 votes

Passer une valeur d'énumération comme paramètre de commande à partir de xaml

Je veux passer une valeur d'énumération en tant que paramètre de commande dans WPF, quelque chose comme cela -

<Button x:Name="uxSearchButton" Command="{Binding Path=SearchMembersCommand}" 
        CommandParameter="SearchPageType.First" Content="Search"></Button>

SearchPageType est un enum et permet de savoir à partir de quel bouton la commande de recherche est invoquée.

Est-ce possible dans WPF, ou comment passer une valeur d'énumération comme paramètre de commande ?

273voto

Jobi Joy Points 20883

Essayez ceci

<Button CommandParameter="{x:Static local:SearchPageType.First}" .../>

local - est votre référence à l'espace de nom dans le XAML

163voto

tbergelt Points 1027

N'oubliez pas non plus que si votre enum se trouve dans une autre classe, vous devez utiliser l'opérateur "+".

<Button CommandParameter="{x:Static local:MyOuterType+SearchPageType.First}".../>

43voto

Robert Macnee Points 6998

Pour cela, vous pouvez utiliser la syntaxe des éléments de propriété au lieu de celle des attributs :

<Button x:Name="uxSearchButton"
        Command="{Binding Path=SearchMembersCommand}"
        Content="Search">
    <Button.CommandParameter>
        <SearchPageType>First</SearchPageType>
    </Button.CommandParameter>
</Button>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X