【问题标题】:WPF contextmenu and ListViewWPF 上下文菜单和 ListView
【发布时间】:2010-02-12 19:37:35
【问题描述】:

好的,希望这很简单,但由于某种原因,我找不到直接的答案,而且我对 WPF 还不够熟悉,还不知道该怎么做。

我有一个列表视图,它绑定到要显示的可观察对象集合。我想要一个带有一堆选项的上下文菜单。上下文菜单中的选项与列表中被单击的特定对象相关(例如删除、导出等)。

所以我需要将用户在我的列表视图中右键单击的对象作为参数传递给上下文菜单执行的命令。

我该怎么做?

编辑:我应该提到我更喜欢一个主要(如果不是全部)xaml 的解决方案 - 我试图避免在代码隐藏中包含重要代码。如果这是唯一的方法......

进一步编辑:我忘记提及的更多细节很重要。我要执行的命令是在绑定到我的用户控件的数据上下文的对象上,而不是在列表视图中的对象上。因此,我需要将列表视图项上的上下文菜单绑定到用户控件数据上下文中的命令,并将列表视图项作为参数传递给该命令。

【问题讨论】:

    标签: wpf listview contextmenu


    【解决方案1】:

    这取决于您的 ContextMenu 是单个项目模板的一部分,还是作为一个整体附加到 ListBox。

    如果您使用 DataTemplate 将 ContextMenu 附加到列表中的项目(这通常是最好的方法),则 MenuItem 上的 DataContext 已设置好,因此您需要做的所有事情是:

    <MenuItem ... CommandParameter="{Binding}" />
    

    另一方面,如果您的ContextMenu 整体附加到ListBox,则需要访问SelectedItemSelectedItem 属性:

    <MenuItem ... CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor,ListBox,1}} />
    

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多