放置目标始终为空
本文关键字:目标 | 更新日期: 2023-09-27 18:08:14
我有一个按钮的上下文菜单,像这样:
<Button x:Name="btnView" Tag="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}},Path=DataContext}"
<Button.ContextMenu >
<ContextMenu x:Name="contextMenu"
DataContext="{Binding PlacementTarget.Tag,RelativeSource={RelativeSource Self}}" >
<MenuItem Header="View" Command="{Binding CommandObj.ViewCommand}"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
单击菜单项时不触发ViewCommand。当我检查放置目标是空的。有人能告诉我我哪里做错了吗?
为了使您的ViewCommand ICommand
工作,关于您的XAML的一些事情必须是真实的:
<Button x:Name="btnView" Tag="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}},Path=DataContext}"
<Button.ContextMenu >
<ContextMenu x:Name="contextMenu" DataContext="{Binding PlacementTarget.Tag,
RelativeSource={RelativeSource Self}}">
<MenuItem Header="View" Command="{Binding CommandObj.ViewCommand}"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
- 您必须已经将对象的实例设置为
UserControl.DataContext
属性。 - 该对象必须在其中声明一个名为
CommandObj
的公共属性。 -
CommandObj
属性的类型必须包含一个名为ViewCommand
的ICommand
类型的公共属性。
如果这些条件中的任何一个不为真,那么您的ICommand
将无法工作,您将需要满足这些条件。否则,似乎您正确地将DataContext
值传递给ContextMenu
。