Een enumwaarde doorgeven als opdrachtparameter vanuit XAML

Ik wil een enum-waarde doorgeven als opdrachtparameter in WPF, met zoiets als dit:

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

SearchPageTypeis een opsomming en dit is om te weten vanaf welke knop het zoekcommando wordt aangeroepen.

Is dit mogelijk in WPF, of hoe kun je een enum-waarde doorgeven als opdrachtparameter?


Antwoord 1, autoriteit 100%

Probeer dit

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

local– is uw naamruimtereferentiein de XAML


Antwoord 2, autoriteit 59%

Onthoud ook dat als je enum zich in een andere klasse bevindt, je de operator +moet gebruiken.

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

Antwoord 3, autoriteit 17%

U kunt hiervoor de syntaxis van eigenschapselementen gebruiken in plaats van de attribuutsyntaxis:

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

Antwoord 4, autoriteit 11%

Ook als u een [Flags]-enum wilt opgeven, kunt u de syntaxis van het eigenschapselement gebruiken:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>

Other episodes