Я пытался найти хороший аккуратный и лаконичный способ объявления RelayCommands в моих ViewModels.
Лучшее, что я могу придумать:
public class MyViewModel
{
public ICommand StopCommand { get; private set; }
public MyViewModel()
{
StopCommand = new RelayCommand(OnStop);
}
private OnStop(object sender)
{
//hammertime
}
}
Что бы я действительно хотел сделать, так это удалить двухэтапное объявление / конструкцию, что-то вроде:
public class MyViewModel
{
public readonly ICommand StopCommand = new RelayCommand(OnStop);
private OnStop(object sender)
{
//hammertime
}
}
Однако это не скомпилируется с
ошибка CS0236: инициализатор поля не может ссылаться на нестатический
поле, метод или свойство 'MyViewModel.OnStop (object)'
Есть ли более аккуратный / "стандартный" способ, которым люди пользуются?