从XAML传递枚举值作为命令参数


182

我想使用以下方式将枚举值作为WPF中的命令参数传递:

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

SearchPageType 是一个枚举,这是要知道从哪个按钮搜索命令被调用。

在WPF中是否可能,或者如何将枚举值作为命令参数传递?

Answers:


284

试试这个

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

local-是XAML中的名称空间引用


如果我在此命名空间my.namespace中有一个名为“ MyEnum”的枚举,如何定义“本地”?
Vering

171

还要记住,如果您的枚举在另一个类内,则需要使用+运算符。

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

46

您可以为此使用属性元素语法而不是属性语法:

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

31

另外,如果要提供[ Flags]枚举,则可以使用property元素语法:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.