RelayCommand
RelayCommand
實現 ICommand
介面,因此可用於繫結 XAML 中的 Command
s(作為 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();
來強制重新評估canExecute
Func