.net 不带参数的命令绑定
我正在学习WPF中的MVVM 如果命令不接受对象参数,如何将命令绑定到控件?我目前正在使用RelayCommand方法,这将不允许我在没有对象参数的情况下传递方法/操作,正如RelayCommand类中的操作签名所指定的那样.net 不带参数的命令绑定,.net,wpf,c#-4.0,.net,Wpf,C# 4.0,我正在学习WPF中的MVVM 如果命令不接受对象参数,如何将命令绑定到控件?我目前正在使用RelayCommand方法,这将不允许我在没有对象参数的情况下传递方法/操作,正如RelayCommand类中的操作签名所指定的那样 所以我的问题是,如果我想在不使用任何参数的情况下实现命令,我的方法是什么?我自己不使用RelayCommand,我更喜欢使用我自己的实现,但我认为它们非常相似,足以让我回答您的问题: public ICommand ActivateCommand { get { r
所以我的问题是,如果我想在不使用任何参数的情况下实现命令,我的方法是什么?我自己不使用
RelayCommand
,我更喜欢使用我自己的实现,但我认为它们非常相似,足以让我回答您的问题:
public ICommand ActivateCommand
{
get { return new RelayCommand(action => Activate(), canExecute => CanActivate()); }
}
这里,
CommandParameter
由action
和canExecute
输入参数表示。您必须在这里声明它们,但您不必使用它们,正如上面所示。显然,与所有lambda表达式一样,您可以随意调用它们。您可以使用库中包含的DelegateCommand
此命令允许您定义所需的任何参数类型
比如说
ICommand MyCommand = new DelegateCommand<AnyType>(Execute, CanExecute);
private void Execute(AnyType e) {} private bool CanExecute(AnyType e) { return true; }
希望有帮助。我们可以看看您的代码吗?
ICommand MyCommand = new DelegateCommand(Execute, CanExecute);
private void Execute() {} private bool CanExecute() {return true;}