无法在MVVM Light Toolkit的RelayCommand中将单个参数传递给lambda函数

Dav*_*ave 3 wpf relaycommand mvvm-light

我不知道Josh Smith和Laurent Bugnion的RelayCommand的实现是否有区别,但在我看过的每一个地方,听起来像RelayCommand的Execute部分可以带0或1个参数.我只能使它与0一起工作.当我尝试类似的东西时:

public class Test
{
    public RelayCommand MyCommand { get; set; }

    public Test()
    {
        MyCommand = new RelayCommand((param) => SomeFunc(param));
    }

    private void SomeFunc( object param)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:Delegate 'System.Action' does not take '1' arguments.为了确保我不是疯了,我去了RelayCommand的定义,以确保我的解决方案中没有一些流氓实现,但果然,它只是Action,而不是Action <>.

我到底在这里错过了什么?

Mat*_*ton 7

RelayCommand(在MVVM Light中)的非泛型实现不接受参数.使用RelayCommand<Object>相反,或(甚至更好)RelayCommand<YourCustomType>使参数SomeFunc为强类型.