Reputation: 15772
I want to pass an enum value as command parameter in WPF, using something like this:
<Button
x:Name="uxSearchButton"
Command="{Binding Path=SearchMembersCommand}"
CommandParameter="SearchPageType.First"
Content="Search">
</Button>
SearchPageType
is an enum and this is to know from which button search command is invoked.
Is this possible in WPF, or how can you pass an enum value as command parameter?
Upvotes: 212
Views: 76027
Reputation: 30
CommandParameter="{x:Static "Class namespace e.g(Models)":SearchPageType.First}"
Upvotes: -2
Reputation: 553
Also if you want to provide a [Flags
] enum you can use the property element syntax:
<Button>
<Button.CommandParameter>
<SearchPageType>First,Second</SearchPageType>
<Button.CommandParameter>
</Button>
Upvotes: 33
Reputation: 2246
Also remember that if your enum is inside another class you need to use the +
operator.
<Button CommandParameter="{x:Static local:MyOuterType+SearchPageType.First}".../>
Upvotes: 191
Reputation: 50038
Try this
<Button CommandParameter="{x:Static local:SearchPageType.First}" .../>
local
- is your namespace reference in the XAML
Upvotes: 337
Reputation: 11820
You can use property element syntax instead of attribute syntax for this:
<Button x:Name="uxSearchButton"
Command="{Binding Path=SearchMembersCommand}"
Content="Search">
<Button.CommandParameter>
<SearchPageType>First</SearchPageType>
</Button.CommandParameter>
</Button>
Upvotes: 54