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

时间:2008-12-11 15:23:49

标签: .net wpf silverlight xaml command

我希望在WPF中将枚举值作为命令参数传递,使用类似这样的内容:

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

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

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

4 个答案:

答案 0 :(得分:264)

试试这个

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

local - 是XAML中的namespace reference

答案 1 :(得分:160)

另请注意,如果您的枚举位于其他课程中,则需要使用+运算符。

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

答案 2 :(得分:43)

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

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

答案 3 :(得分:28)

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

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