2010-08-30 105 views
1

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

现在,我怀疑另一个窗口造成这种情况,当我们做某个动作时,会弹出一个窗口,然后在下一个动作之后,所有按钮都会被禁用,而无需通过CanExecute方法。

有没有人看过这样的行为?任何有关如何解决这个问题的建议,我们都非常感谢。

谢谢。

+0

你能发表一些代码吗?你使用了什么ICommand实现(DelegateCommand,RelayCommand ...)? – 2010-08-30 20:14:04

+0

@Thomas Levesque修复了这个问题。这是一个焦点问题,不完全确定它为什么会发生这种情况,但删除它会使其正常工作。谢谢! – Carlo 2010-08-30 20:15:14

+0

我也有类似的焦点和命令被禁用的问题......但我最终放弃了这个项目,所以我从来没有真的试图解决它 – 2010-08-30 20:48:21

回答

1

修正了它。这与我提到的其他窗口有关,但并不完全如此。问题是我们有一种方法来隐藏提到的窗口,在这种方法中,我们将焦点放回主窗口,那就是问题所在。不知道如何或为什么,但删除

App.MainWindow.Focus() 

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

谢谢!

相关问题