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