我正在制作一个可扩展/可折叠面板的自定义控件,然后我可以用其他控件填充它。我不确定如何将展开/折叠命令挂钩到按钮。
我用这个让小组听:
CommandManager.RegisterClassInputBinding(GetType(Button), New InputBinding(ToggleBtnCommand, New MouseGesture(MouseAction.LeftClick)))
CommandManager.RegisterClassCommandBinding(GetType(Button), New CommandBinding(ToggleBtnCommand, AddressOf btnToggleState))
这是有效的,只要我每个窗口只使用一个面板。如果我使用更多面板,则按下按钮时所有面板都会展开或折叠。如何让控件理解只有包含按下按钮的那个(“命令触发器”)应该听命令?
答案 0 :(得分:0)
在你的ToggleBtnCommand中(它实际上是由by,但我个人从名称中删除了Btn,因为命令是UI不可知的) - 执行处理程序你将ExecutedRoutedEventArgs作为一个secong参数,通过比较它的Source&您可以说OriginalSource是否是“本地”命令。
[我将此评论复制到答案中,因此我可以将问题标记为已回答 - 这会弄乱我的录取率。 :)]