1

好吧,在我们的应用程序中,这通常可以正常工作。但在某些时候,CanExecute 方法都不会触发(即使我明确调用 CommandManager.InvalidateRequerySuggested(),CanExecute 方法也不会运行)。无论如何,尽管它们没有运行,但它们都设置为 false,因此绑定到 CommandBinding 的每个按钮、菜单项等都会被禁用,直到我单击 MainWindow。

现在,我怀疑是另一个 Window 导致了这种情况,当我们执行某个操作时,会弹出一个 Window,然后在执行下一个操作后,所有按钮都被禁用,而无需通过 CanExecute 方法。

有没有人见过这样的行为?非常感谢任何有关如何解决此问题的建议。

谢谢。

4

1 回答 1

1

解决它。它与我提到的另一个窗口有关,但并非完全如此。问题是我们有一个方法来隐藏提到的窗口,在那个方法中,我们把焦点放回主窗口,这就是问题所在。不知道如何或为什么,但删除

App.MainWindow.Focus()

Line 解决了这个问题。因此,无论何时关闭或隐藏子窗口,都不要在主窗口上调用 Focus() 方法。

谢谢!

于 2010-08-30T20:14:27.323 回答