我有一個WPF應用程序,他們的菜單正在使用命令功能。一切都很好,當我點擊菜單中的按鈕時,命令就會運行。但是,我無法獲得按鈕的IsEnabled狀態來尊重我的命令的CanExecute部分。從WPF中的命令訪問控件
一個挑戰是需要查看你在UI中做什麼的命令。例如,一個命令應該只在ListBox中的某些項被選中時纔可用,因此我需要獲得對ListBox的引用......但是由於該命令在我的視圖模型(MVVM模式)中公開,所以它沒有訪問UI(順便說一下,菜單在一個用戶控件[parent = mainwindow]中,而ListBox在另一個用戶控件[parent = mainwindow]中)。
此外,即使我硬編碼命令的CanExecute方法返回false,該按鈕的Enabled屬性不會更改...該命令不會觸發,但它不會更改...令人沮喪。我想我需要修改/提高CanExecuteChanged事件,但我不知道什麼時候應該這樣做(找不到一個好的示例)。
反饋?
檢出MVVMLight ...我喜歡Messger類的想法...謝謝! – 2010-06-15 15:43:35