4

我不知道 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)
    {
    }
}

我得到错误:Delegate 'System.Action' does not take '1' arguments。只是为了确保我没有发疯,我查看了 RelayCommand 的定义,以确保我的解决方案中没有某些流氓实现,但可以肯定的是,它只是 Action,而不是 Action<>。

我到底在这里想念什么?

4

1 回答 1

8

(在 MVVM Light 中)的非泛型实现RelayCommand不接受参数。改为使用RelayCommand<Object>,或者(甚至更好)RelayCommand<YourCustomType>,这样参数 toSomeFunc是强类型的。

于 2010-06-07T03:58:10.343 回答