.net 不带参数的命令绑定

.net 不带参数的命令绑定,.net,wpf,c#-4.0,.net,Wpf,C# 4.0,我正在学习WPF中的MVVM 如果命令不接受对象参数,如何将命令绑定到控件?我目前正在使用RelayCommand方法,这将不允许我在没有对象参数的情况下传递方法/操作,正如RelayCommand类中的操作签名所指定的那样 所以我的问题是,如果我想在不使用任何参数的情况下实现命令,我的方法是什么?我自己不使用RelayCommand,我更喜欢使用我自己的实现,但我认为它们非常相似,足以让我回答您的问题: public ICommand ActivateCommand { get { r

我正在学习WPF中的MVVM

如果命令不接受对象参数,如何将命令绑定到控件?我目前正在使用RelayCommand方法,这将不允许我在没有对象参数的情况下传递方法/操作,正如RelayCommand类中的操作签名所指定的那样


所以我的问题是,如果我想在不使用任何参数的情况下实现命令,我的方法是什么?

我自己不使用
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;}