我在XAML代码中为特定控件编写了一个contextmenu,在右键单击控件后打开,我希望第二个控件具有相同的上下文菜单。
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Command01" Command="{Binding ContextMenuCommand01}"/>
<MenuItem Header="Command02" Command="{Binding ContextMenuCommand02}"/>
<Separator/>
<MenuItem Header="Option01" IsCheckable="True" IsChecked="{Binding Option01Selected}" />
<MenuItem Header="Option02" IsCheckable="True" IsChecked="{Binding Option02Selected}" />
</ContextMenu>
</ListBox.ContextMenu>
我所做的是将第二个控件的上下文菜单设置为后面代码中的第一个控件,并在单击鼠标右键时手动打开它。
this.SecondControl.ContextMenu = this.FirstControl.ContextMenu;
现在第二个控件以我不理解的方式运行:第二个控件的上下文菜单正确打开,但单击时没有任何命令被触发,并且没有更新任何属性。 但是......如果我之前打开第一个控件菜单,其行为与预期相似,那么第二个上下文菜单也可以正常运行。
如何解释?