我有一个带有工具栏的窗口,其中包含一些带有命令的按钮。按钮停止工作,因为我用包含按钮的堆栈面板替换了工具栏。
据我了解,这应该没有任何区别。按钮仍然设置了 Command 属性,我没有更改自定义命令类中的任何内容,并且 CommandBinding 也仍然相同。它们实现了一些比按钮更深的网格和用户控件,但它们确实有效,只要按钮位于 ToolBar 控件中!
如果我直接在窗口中实现 CommandBindings,它们就可以工作(但这不是我想要的)
下面是代码(删节):
<Window>
<Grid>
<StackPanel>
<Button Command="gui:GuiCommands.Hello">Hello</Button>
</StackPanel>
<Grid>
<TabControl>
<TabItem Header="MyTab">
<Grid>
<Grid.CommandBindings>
<CommandBinding Command="gui:GuiCommands.Hello" Executed="hello_Clicked"/> <!-- THIS WOULD NOT WORK -->
</Grid.CommandBindings>
<Grid>
</TabItem>
</TabControl>
</Grid>
</Grid>
<Window.CommandBindings>
<CommandBinding Command="gui:GuiCommands.Hello" Executed="hello_Clicked"/> <!-- THIS WOULD WORK -->
</Window.CommandBindings>
</Window>
我知道它不会编译,但我必须简化它。只要我用我的应用程序将“StackPanel”替换为“ToolBar”,这就会起作用。怎么可能?