Итак, я хочу передать некоторые параметры Icommand. Я полностью понимаю, как это можно сделать из XAML с помощью CommandParameter. Однако есть ли способ установить параметр из 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. Хорошая идея или нет - это другое дело! :)