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