Mar*_*ris 51
WPF中不存在中继命令,它只是在本MSDN文章中定义后突出显示的外部类.如果要使用它,您需要自己编写.
否则,你可以在你从WPF工具的委托指令在这里其中有超过RelayCommand代码额外的功能一点点.
啊,当我输入这个答案时问题发生了变化.假设您正在使用上面定义的RelayCommand,您需要为它提供一个或两个委托,一个返回bool,用于确定命令是否处于有效状态以运行,第二个返回什么并且实际运行命令.如果您不提供"CanRun"委托,则该命令将认为它始终处于有效状态.文章中使用的代码:
RelayCommand _saveCommand;
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(param => this.Save(),
param => this.CanSave );
}
return _saveCommand;
}
}
Run Code Online (Sandbox Code Playgroud)
声明一个RelayCommand,它将在触发时调用Save()方法,并返回CanSave属性作为有效性测试.当此命令绑定到WPF中的按钮时,Button的IsEnabled属性将与ViewModel的CanSave属性匹配,并且当单击该按钮时(假设它已启用),将在ViewModel上调用Save()方法.
作为RelayCommand
为所有方法创建包装器的替代方法,我可以建议一个允许您使用绑定的免费库和源代码{BindTo Save()}
.我创建它来简化我的绑定.它还使相对绑定更容易.你可以在这里找到它:http://www.simplygoodcode.com/2012/08/simpler-wpf-binding.html