どちらの ICommand オブジェクトも ViewModel にバインドされています。
最初のアプローチはよく使われるようです。
しかし、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); }
}