У вас есть 2 способа сделать это.
Первый способ: Создать новый класс для каждой отдельной команды.
public class PlusCommand : ICommand
{
private YourViewModelClass viewModel;
public PlusCommand(YourViewModelClass vm)
{
viewModel = vm;
}
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
//Your code to run here. Access viewmodel by viewModel variable.
}
public event EventHandler CanExecuteChanged;
}
Второй способ: Создайте класс RelayCommand и используйте класс RelayCommand для каждой команды в будущем.
Шаг 1: Создайте класс RelayCommand.
public class RelayCommand : ICommand
{
private Action<object> execute;
private Func<object, bool> canExecute;
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return this.canExecute == null || this.canExecute(parameter);
}
public void Execute(object parameter)
{
this.execute(parameter);
}
}
Шаг 2: Объявите новую команду с помощью RelayCommand
RelayCommand PlusCommand= new RelayCommand(o => DoSomething(), o => true);
Вы можете читать дальше здесь.