没有参数的命令绑定

时间:2013-10-01 14:37:14

标签: .net wpf c#-4.0

我正在学习WPF中的MVVM。

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

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

2 个答案:

答案 0 :(得分:0)

我自己不使用RelayCommand,更喜欢使用我自己的实现,但我认为它们足以让我能够回答你的问题:

public ICommand ActivateCommand
{
    get { return new RelayCommand(action => Activate(), canExecute => CanActivate()); }
}

此处,CommandParameteractioncanExecute输入参数表示。你必须在这里声明它们,但你没有来使用它们,如上所示。显然,与所有lambda表达式一样,您可以按照自己喜欢的方式调用它们。

答案 1 :(得分:0)

您可以使用Microsoft Prism库中包含的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;}

希望,这有帮助。