Passando um valor de enumeração como parâmetro de comando do XAML


182

Eu quero passar um valor enum como parâmetro de comando no WPF, usando algo como isto:

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

SearchPageType é uma enumeração e é para saber a partir de qual comando de pesquisa de botão é chamado.

Isso é possível no WPF, ou como você pode passar um valor de enumeração como parâmetro de comando?

Respostas:



172

Lembre-se também de que, se sua enumeração estiver dentro de outra classe, você precisará usar o +operador.

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

47

Você pode usar a sintaxe do elemento de propriedade em vez da sintaxe de atributo para isso:

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

31

Além disso, se você deseja fornecer uma Flagsenumeração [ ], pode usar a sintaxe do elemento de propriedade:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.