从ViewModel传递Icommand参数

时间:2018-11-14 15:15:42

标签: command parameter-passing action icommand

所以我想传递一些Icommand参数。我完全了解如何使用CommandParameter从XAML做到这一点。但是,是否有一种方法也可以从ViewModel设置参数?

我很欣赏这不是MVVM的一种方法,但是暂时不要使用它。

为了使我的意思更理想,我已经包含了一些代码。

ViewModel部分:

public HandHeldButtonClickCommand SendButtonCommand { get; set; }

SendButtonCommand = new ButtonClickCommand(SendCmd(x)); // This is wrong but the idea is to set the command to be delegated and pass it the parameter x

private void SendCmd(int sendValue)
{
        // Do stuff here with sendValue
}

然后输入ICommand:

public class ButtonClickCommand : ICommand
{
    public event EventHandler CanExecuteChanged;
    private Action<object> execute;

    public ButtonClickCommand(Action<object> execute)
    {
        this.execute = execute;
    }

    public bool CanExecute(object parameter)
    {
        //throw new NotImplementedException();
        return true;
    }

    public void Execute(object parameter)
    {
        execute(parameter);
    }
}

任何帮助都会很棒。最主要的是,我想学习是否可以从viewModel代码中设置命令参数/参数。不管是一个好主意是另一回事! :)

0 个答案:

没有答案