首页 文章

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

提问于
浏览
173

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

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

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

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

4 回答

  • 159

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

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

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

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

    试试这个

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

    local - 是XAML中的namespace reference

  • 261

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

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

相关问题