如何将子菜单“绑定”到主菜单?

时间:2012-09-08 13:24:11

标签: c# wpf controls

我知道我的主题标题选择不是很好,但我不知道如何描述我的问题。 好的回到2主题:

我的应用程序有三个菜单。其中两个相互依赖。 在此示例中,我有三个类别:CarsTreesStudents

在主菜单中有三个按钮,每个按钮处理三个类别中的一个。 在子菜单中还有三个其他控件:AddRemovePrint

现在,如果我点击Cars,我希望应用程序激活子菜单中的所有三个按钮,以便用户能够管理他/她的汽车。 因此,将有一个包含所有现有数据的表格,但目前无关紧要。

我现在的问题是如何知道用户按下了哪个类别按钮?只有一个子菜单,如果用户点击Add - 按钮,应用程序必须知道应该添加新条目的类别。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试使用3种不同的命令,但想知道从哪个类别中选择它。

如果是这样,那么您可以使用CommandParameter来指示类别 - 命令参数数据在被调用时将被传递到CanExecute() / Execute()

(忽略下面重复的ApplicationCommands.Cut ...我只是在KAXAML中进行测试......只需用你定义的Add,Remove或Print命令替换它。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Menu>
       <MenuItem Header="Cars">
        <MenuItem Header="Add" Command="ApplicationCommands.Cut" CommandParameter="Cars"/>
        <MenuItem Header="Remove" Command="ApplicationCommands.Cut" CommandParameter="Cars"/>
        <MenuItem Header="Print" Command="ApplicationCommands.Cut" CommandParameter="Cars"/>
      </MenuItem>
       <MenuItem Header="Trees">
        <MenuItem Header="Add" Command="ApplicationCommands.Cut" CommandParameter="Trees"/>
        <MenuItem Header="Remove" Command="ApplicationCommands.Cut" CommandParameter="Trees"/>
        <MenuItem Header="Print" Command="ApplicationCommands.Cut" CommandParameter="Trees"/>
      </MenuItem>
       <MenuItem Header="Students">
        <MenuItem Header="Add" Command="ApplicationCommands.Cut" CommandParameter="Students"/>
        <MenuItem Header="Remove" Command="ApplicationCommands.Cut" CommandParameter="Students"/>
        <MenuItem Header="Print" Command="ApplicationCommands.Cut" CommandParameter="Students"/>
      </MenuItem>
  </Menu>
</Page>