На мой взгляд, лучшее, что вы можете сделать, это написать свою собственную Команду, потому что, как вы сказали, вы можете повторно использовать ее в разных элементах управления и Windows.быть производным от ICommand
.Вот пример базового класса команд:
public abstract class BaseCommand : ICommand
{
protected IMyViewModel viewModel;
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public BaseCommand(IMyViewModel viewModel)
{
this.viewModel = viewModel;
}
public abstract bool CanExecute(object parameter);
public abstract void Execute(object parameter);
}
Чтобы использовать команду, например, при нажатии кнопки, код будет выглядеть примерно так:
<Button Command="{Binding Path=MyReuseableCommand,
UpdateSourceTrigger=PropertyChanged}" />
Я надеюсь, что этопоможет вам получить правильное направление.