当我执行路由命令时,我们说:
ApplicationCommands.Undo.Execute(null, this);
WPF做了一些魔术,以找到在其上执行
CommandBinding
的正确的ExecutedRoutedEventHandler
。有没有办法获得对将要执行的
CommandBinding
(或至少是处理程序)的引用?调试有时可以知道谁在处理命令。
最佳答案
您可以尝试在以下位置检查CommandBinding列表:
UIElement
ContentElement
UIElement3D
ApplicationCommands在内部检查发件人在CommandBinding中是否具有特定命令。另外,如果sender为null,则将Keyboard.FocusedElement分配为sender。