当我执行路由命令时,我们说:

ApplicationCommands.Undo.Execute(null, this);


WPF做了一些魔术,以找到在其上执行CommandBinding的正确的ExecutedRoutedEventHandler

有没有办法获得对将要执行的CommandBinding(或至少是处理程序)的引用?

调试有时可以知道谁在处理命令。

最佳答案

您可以尝试在以下位置检查CommandBinding列表:

       UIElement
       ContentElement
       UIElement3D


ApplicationCommands在内部检查发件人在CommandBinding中是否具有特定命令。另外,如果sender为null,则将Keyboard.FocusedElement分配为sender。

10-07 17:50