198

我想在 WPF 中将枚举值作为命令参数传递,使用如下所示:

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

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

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

4

4 回答 4

309

试试这个

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

local- 是您在 XAML 中的命名空间引用

于 2008-12-11T16:55:03.710 回答
182

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

<Button CommandParameter="{x:Static local:MyOuterType+SearchPageType.First}".../>
于 2010-12-04T05:26:21.820 回答
52

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

<Button x:Name="uxSearchButton"
        Command="{Binding Path=SearchMembersCommand}"
        Content="Search">
    <Button.CommandParameter>
        <SearchPageType>First</SearchPageType>
    </Button.CommandParameter>
</Button>
于 2008-12-11T19:48:32.143 回答
33

此外,如果您想提供 [ Flags] 枚举,您可以使用属性元素语法:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
于 2014-08-22T05:38:07.050 回答