在ViewModel中创建命令时,我看到了两种不同的变体。以下列出了这些:
public partial class PhrasesFrameViewModel : BaseViewModel
{
private ICommand wordGridCmd;
public ICommand WordGridCmd => wordGridCmd ?? (wordGridCmd = new Command(() =>
{
if (!App.pauseCard)
if (phrasesFrame.timer1Seconds > 0)
phrasesFrame.CancelTimer1();
else
phrasesFrame.CancelTimer2();
}));
}
和
public partial class PhrasesFrameViewModel : BaseViewModel
{
public ICommand WordGridCmd { get; private set; }
WordGridCmd = new Command(() =>
{
if (!App.pauseCard)
if (phrasesFrame.timer1Seconds > 0)
phrasesFrame.CancelTimer1();
else
phrasesFrame.CancelTimer2();
}));
}
有人能告诉我,我有什么理由进行??
检查,看看命令是否已经存在,或者使用第二种方法定义命令更常见吗?
在分配新值之前,不需要检查属性(在您的情况下是WordGridCmd(是否已分配值。此属性将在视图模型实例化时初始化,而不是每次访问该属性时都初始化。