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(); 來強制重新評估 canExecute Func