嗯,在我们的应用程序中,这通常可以正常工作。但在某些时候,没有任何CanExecute方法触发(即使我显式调用CommandManager.InvalidateRequerySuggested(),CanExecute方法也不会运行)。无论如何,尽管它们没有运行,但它们都被设置为false,因此绑定到CommandBinding的每个按钮,菜单项等都被禁用,直到我单击MainWindow。
现在,我怀疑另一个窗口会导致这种情况,当我们执行某个操作时,会弹出一个Window,然后在下一个操作之后,所有按钮都会被禁用,而不会通过CanExecute方法。
有没有人见过这样的行为?关于如何解决这个问题的任何建议都非常感谢。
感谢。
答案 0 :(得分:1)
修正了它。它与我提到的另一个窗口有关,但并非如此。问题是我们有一个隐藏所提到的窗口的方法,在那个方法中,我们将焦点重新放回主窗口,这就是问题所在。不确定如何或为什么,但删除
App.MainWindow.Focus()
行解决了这个问题。因此,每当您关闭或隐藏子窗口时,请不要在主窗口上调用Focus()方法。
谢谢!