我的应用程序一直是这样的代码,但我不确定这是否正确。特别是"return aButton ClickedCommand??",我认为这意味着如果命令尚未定义,则创建它。
与其这样做,不如在构造函数中声明命令更干净?如果是这样,我该如何做到并使用它?
public partial class PhrasesFrameViewModel : ObservableObject
{
private ICommand aButtonClickedCommand;
public ICommand AButtonClickedCommand
{
get
{
return aButtonClickedCommand ?? (aButtonClickedCommand =
new Command(() => {
App.DB.IncrementPoints(Settings.cfs, phrasesFrame.phrase, (int)Settings.aBtn, 1);
Change.points = true;
phrasesFrame.CancelTimer2();
}));
}
}
您可以在构造函数或其他命令模式中执行此操作,并且可能看起来更干净,还可以将其保存在构造函数中
private ICommand abuttonClickedCommand;
public ICommand AButtonClickedCommand => aButtonClickedCommand ?? (aButtonClickedCommand = new Command(ProcessButtonClickedCommand));
private void ProcessButtonClickedCommand()
{
App.DB.IncrementPoints(Settings.cfs, phrasesFrame.phrase, (int)Settings.aBtn, 1);
Change.points = true;
phrasesFrame.CancelTimer2();
}
你基本上是正确的,如果它没有创建(然后创建它(,然而有些人也喜欢构造函数的方法