Wpf CanExecute方法将出现错误问题

Wpf CanExecute方法将出现错误问题,wpf,commandbinding,Wpf,Commandbinding,嗯,在我们的应用程序中,这通常很好。但是在某个时刻,没有任何CanExecute方法触发(即使我显式调用CommandManager.invalidateRequestSuggested(),CanExecute方法也不会运行)。无论如何,尽管它们不运行,但它们都被设置为false,因此绑定到CommandBinding的每个按钮、菜单项等都被禁用,直到我单击主窗口 现在,我怀疑是另一个窗口导致了这种情况,当我们执行某个操作时,会弹出一个窗口,然后在下一个操作之后,所有按钮都会被禁用,而无需通过

嗯,在我们的应用程序中,这通常很好。但是在某个时刻,没有任何CanExecute方法触发(即使我显式调用CommandManager.invalidateRequestSuggested(),CanExecute方法也不会运行)。无论如何,尽管它们不运行,但它们都被设置为false,因此绑定到CommandBinding的每个按钮、菜单项等都被禁用,直到我单击主窗口

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

有人见过这样的行为吗?任何关于如何解决这个问题的建议,我们都将不胜感激


谢谢。

修好了。它与我提到的另一个窗口有关,但事实并非如此。问题是我们有一种方法来隐藏所提到的窗口,在这种方法中,我们将焦点返回到主窗口,这就是问题所在。不确定如何或为什么,但删除

App.MainWindow.Focus()
线路修复了这个问题。因此,无论何时关闭或隐藏子窗口,都不要在主窗口上调用Focus()方法


谢谢

修复了它。它与我提到的另一个窗口有关,但事实并非如此。问题是我们有一种方法来隐藏所提到的窗口,在这种方法中,我们将焦点返回到主窗口,这就是问题所在。不确定如何或为什么,但删除

App.MainWindow.Focus()
线路修复了这个问题。因此,无论何时关闭或隐藏子窗口,都不要在主窗口上调用Focus()方法


谢谢

你能发一些代码吗?您使用的是什么ICommand实现(DelegateCommand,RelayCommand…)@Thomas Levesque修复了这个问题。这是一个焦点问题,不太清楚为什么会发生这种情况,但移除它可以让它正常工作。谢谢我也有类似的问题,焦点和命令被禁用。。。但我最终放弃了那个项目,所以我从未真正尝试过解决它。你能发布一些代码吗?您使用的是什么ICommand实现(DelegateCommand,RelayCommand…)@Thomas Levesque修复了这个问题。这是一个焦点问题,不太清楚为什么会发生这种情况,但移除它可以让它正常工作。谢谢我也有类似的问题,焦点和命令被禁用。。。但我最终放弃了那个项目,所以我从未真正尝试过解决它