Icommand
包含兩種方法和一個事件。ICommand的CanExecuteChanged事件
什麼兩種方法做的是明確的,但我不明白什麼事件呢了在ICommand
提供。
CanExecuteChanged
事件是什麼時候引發的?
下面的解釋是對MSDN但我無法理解它。如果命令管理是 集中指揮作業檢測命令 源的變化可能無效已經提出了一個命令,但不 仍未被命令結合執行
CanExecuteChanged上升。
你能用簡單的術語解釋一下嗎?
感謝......
Icommand
包含兩種方法和一個事件。ICommand的CanExecuteChanged事件
什麼兩種方法做的是明確的,但我不明白什麼事件呢了在ICommand
提供。
CanExecuteChanged
事件是什麼時候引發的?
下面的解釋是對MSDN但我無法理解它。如果命令管理是 集中指揮作業檢測命令 源的變化可能無效已經提出了一個命令,但不 仍未被命令結合執行
CanExecuteChanged上升。
你能用簡單的術語解釋一下嗎?
感謝......
CanExecuteChanged
當ICommand
的CanExecute
方法得到改變
在一些第三方庫升高,如果CanExecute
參數養PropertyChanged
事件CanExecuteChanged
事件也得到提高。例如,如果CanExecute
參數引發PropertyChanged
事件,而Prism的DelegateCommand
則不引發,則MVVM Light Toolkit的RelayCommand
會引發CanExecuteChanged
事件。
此事件由命令提高到通知它的消費者(即按鈕,菜單項),它的CanExecute屬性可能已經改變。因此,如果焦點從一個文本框移到另一個文本框,您的命令可能需要啓用/禁用。這些信息也需要通過您的命令傳遞給任何控件。
一般而言,此事件只是重新呈現CommandManager.RequerySuggested事件。從類的RoutedCommand:
public event EventHandler CanExecuteChanged {
add {
CommandManager.RequerySuggested += value;
}
remove {
CommandManager.RequerySuggested -= value;
}
}
的RequerySuggested事件被觸發很多時候,作爲焦點移動,文本選擇改變。這也可以通過撥打InvalidateRequerySuggested手動提出。
如何在運行時更改'CanExecute'方法?你能否詳細說明.... – Pritesh
@Pritesh,使用謂詞 –
@WingerSendon我看到有一個替代簽名接受對象的謂詞,但不明白你的意思。 –