RelayCommand
RelayCommand 實現 ICommand 介面,因此可用於繫結 XAML 中的 Commands(作為 Button 元素的 Command 屬性)
建構函式有兩個引數; 第一個是 Action,如果呼叫 ICommand.Execute 將被執行(例如使用者點選按鈕),第二個是 Func<bool>,它確定是否可以執行動作(預設為 true,在下一段中稱為 canExecute)。
基本結構如下:
public ICommand MyCommand => new RelayCommand(
() =>
{
//execute action
Message = "clicked Button";
},
() =>
{
//return true if button should be enabled or not
return true;
}
);
一些值得注意的影響:
- 如果
canExecute返回 false,則將禁用該使用者的Button - 在真正執行操作之前,將再次檢查
canExecute - 你可以呼叫
MyCommand.RaiseCanExecuteChanged();來強制重新評估canExecuteFunc