我有一个包含 UserControl1 和 UserControl2 的窗口。这些用户控件有自己的视图模型。此外,这些用户控件使用 UserControl3 来显示数据。因此,当 UserControl1 使用 UserControl3 时,UserControl3 与 UserControl1 具有相同的视图模型。
我在 UserControl3 中有一个绑定,我希望调用位于 UserControl1 的视图模型上的命令。
但我找不到让它工作的方法。欢迎任何帮助。非常感谢。
这是我的绑定不起作用:
<UserControl x:Class="MyNamespace.UserControl3"
xmlns:local="clr-namespace:MyNamespace">
<UserControl.Resources>
<DataTemplate DataType="{x:Type g:GraphNode}">
<StackPanel>
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="My Command" Command="{Binding Path=DataContext.MyCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:UserControl3}}}"/>
</ContextMenu>
</StackPanel.ContextMenu>
<Grid>
<ContentControl Content="{Binding Data}"/>
</Grid>
</StackPanel>
</DataTemplate>
</UserControl.Resources>