Pasar un valor de enumeración como parámetro de comando desde XAML


182

Quiero pasar un valor de enumeración como parámetro de comando en WPF, usando algo como esto:

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

SearchPageType es una enumeración y esto es para saber desde qué botón se invoca el comando de búsqueda.

¿Es esto posible en WPF o cómo puede pasar un valor de enumeración como parámetro de comando?

Respuestas:


286

Prueba esto

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

local- es su referencia de espacio de nombres en XAML


Si tengo una enumeración llamada "MyEnum" en este espacio de nombres my.namespace, ¿cómo definir "local"?
Vering

172

También recuerde que si su enumeración está dentro de otra clase, debe usar el +operador.

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

47

Puede usar la sintaxis del elemento de propiedad en lugar de la sintaxis de atributo para esto:

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

31

Además, si desea proporcionar una Flagsenumeración [ ], puede usar la sintaxis del elemento de propiedad:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.