从用户控件触发上下文菜单不起作用
本文关键字:上下文 菜单 不起作用 用户 控件 | 更新日期: 2023-09-27 18:31:40
>我尝试使用用户控件列表视图中的上下文菜单,但命令没有触发(在需要时也不启用/禁用)。
法典:
<UserControl ....
<UserControl.Resources>
<ContextMenu x:Key="SharedInstanceContextMenu">
<MenuItem Header="Edit" Command="{Binding ElementName=UC, Path=DataContext.EditSelectedItemCommand}" CommandParameter="{Binding}"/>
</ContextMenu>
<Grid ...>
<ListView ....>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="IsSelected" Value="{Binding Path=IsSelected}"/>
<Setter Property="ContextMenu" Value="{StaticResource SharedInstanceContextMenu}"/>
</Style>
</ListView.ItemContainerStyle>
如何使命令触发(以及启用/禁用,命令行为的一部分)?
(顺便说一句,这个问题似乎类似于不触发的 Treeview 上下文菜单命令,但在尝试了所有解决方案后,它仍然不起作用。
输出窗口是否包含绑定错误,抱怨视图模型上不存在该命令?如果是这样,这可能意味着您的 ContextMenu 的 DataContext 设置不正确。上下文菜单不是可视化树的一部分,因为它们需要在元素顶部弹出,这意味着它们不会像其他控件那样继承其 DataContext。一种解决方案是使用 PlacementTarget 访问您的视图模型 - 有关更多信息,请参阅这篇文章。