2010-08-30 100 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()方法。

謝謝!

相關問題