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

akj*_*shi 179 .net silverlight wpf xaml command

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

<Button 
    x:Name="uxSearchButton" 
    Command="{Binding Path=SearchMembersCommand}" 
    CommandParameter="SearchPageType.First"
    Content="Search">
</Button>
Run Code Online (Sandbox Code Playgroud)

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

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

Job*_*Joy 276

试试这个

<Button CommandParameter="{x:Static local:SearchPageType.First}" .../>
Run Code Online (Sandbox Code Playgroud)

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


小智 163

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

<Button CommandParameter="{x:Static local:MyOuterType+SearchPageType.First}".../>
Run Code Online (Sandbox Code Playgroud)


Rob*_*nee 44

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

<Button x:Name="uxSearchButton"
        Command="{Binding Path=SearchMembersCommand}"
        Content="Search">
    <Button.CommandParameter>
        <SearchPageType>First</SearchPageType>
    </Button.CommandParameter>
</Button>
Run Code Online (Sandbox Code Playgroud)


小智 29

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

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Run Code Online (Sandbox Code Playgroud)