両方のICommandオブジェクトがViewModelにバインドされています。ViewModelで新しいICommandオブジェクトを作成する
最初のアプローチは頻繁に使用されるようです。
しかし、2行目はいくつかのコード行を保存しますが、Bindingがリフレッシュされるたびに新しいICommandオブジェクトを作成することはありません。
private LightCommand _deleteDocumentCommand;
public LightCommand DeleteDocumentCommand
{
get { return _deleteDocumentCommand ?? (_deleteDocumentCommand = new LightCommand(() => DeleteDocument(),() => CanDeleteDocument)); }
}
public LightCommand DeleteDocumentCommand
{
get { return new LightCommand(() => DeleteDocument(),() => CanDeleteDocument); }
}
あなたが示唆したように私はそのアプローチが好きです - なぜ? – msfanboy