如何RelayCommand在WPF中使用 ?
RelayCommand
WPF中不存在Relay命令,它只是一个外部类,在MSDN文章中定义了它之后,它就引起了人们的关注。如果要使用它,则需要自己编写。
否则,你可以在你从WPF工具的委托指令在这里其中有超过RelayCommand代码额外的功能一点点。
嗯,当我输入此答案时,问题就改变了。假设您使用的是上面定义的RelayCommand,则需要为其提供一个或两个委托,一个委托返回一个布尔值,用于确定命令是否处于有效状态,而第二个委托则不返回任何值并实际运行命令。如果不提供“ CanRun”委托,则该命令将认为它始终处于有效状态。本文中使用的代码:
RelayCommand _saveCommand; public ICommand SaveCommand { get { if (_saveCommand == null) { _saveCommand = new RelayCommand(param => this.Save(), param => this.CanSave ); } return _saveCommand; } }
声明一个RelayCommand,它将在触发时调用Save()方法,并返回CanSave属性作为有效性测试。当此命令绑定到WPF中的按钮时,Button的IsEnabled属性将与ViewModel的CanSave属性匹配,并且当单击按钮(假定已启用)时,将在ViewModel上调用Save()方法。