C# 如何找出上下文菜单是为哪个WPF容器的子容器打开的?

C# 如何找出上下文菜单是为哪个WPF容器的子容器打开的?,c#,wpf,data-binding,C#,Wpf,Data Binding,因为ToolbarTray不支持正确的ItemsSource绑定,所以我使用代码隐藏进行操作。也就是把盘子装满。如何判断上下文菜单是为哪个工具栏打开的(使用CommandParameter) 在上面的示例中,我使用了一个工具箱,其中ViewModel中的命令用属性修饰,而xaml中的命令可以这样定义 (与建议的不同。我不想找到ToolbarTray,但要找到工具栏) 编辑:我刚刚在代码隐藏中将ContextMenu分配给工具栏,并按照建议使用PlacementTarget。可能重复的。很抱歉

因为ToolbarTray不支持正确的ItemsSource绑定,所以我使用代码隐藏进行操作。也就是把盘子装满。如何判断上下文菜单是为哪个工具栏打开的(使用CommandParameter)


在上面的示例中,我使用了一个工具箱,其中ViewModel中的命令用属性修饰,而xaml中的命令可以这样定义

(与建议的不同。我不想找到ToolbarTray,但要找到工具栏)


编辑:我刚刚在代码隐藏中将ContextMenu分配给工具栏,并按照建议使用PlacementTarget。

可能重复的。很抱歉,我没有找到更好的方法,但是
menuItem.Parent.PlacementTarget
的想法就是答案。@Sinatr:不一样。我不想找到工具栏托盘,但工具栏可能无法完成。也许我只需要在代码隐藏中为工具栏分配contextmenu。
<UserControl.Resources>
    <ContextMenu x:Key="ToolbarContextMenu">
        <MenuItem Header="Move to top" Command="{ui:CommandHandler MoveToTop}" />
        <MenuItem Header="Move to left" Command="{ui:CommandHandler MoveToLeft}" />
        <MenuItem Header="Make float" Command="{ui:CommandHandler MakeFloat}" />
    </ContextMenu>
</UserControl.Resources>
<ToolBarTray x:Name="MainToolbarTray" Orientation="{Binding Orientation}" ContextMenu="{StaticResource ToolbarContextMenu}"/>