我一直在尝试找到一种简洁明了的方式来在我的 ViewModel 中声明 RelayCommands。
我能想到的最好的是:
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)”
人们使用更整洁/“标准”的方式吗?