Josh Smith のRelayCommandを使用する場合、私が見たほとんどの例では、次のような遅延初期化を使用しています。
public class ViewModel
{
private ICommand myCommand;
public ICommand MyCommand
{
get
{
if (myCommand == null)
{
myCommand = new RelayCommand(p => DoSomething() );
}
return myCommand;
}
}
// ... stuff ...
}
次のように、コンストラクターで RelayCommand を作成するのではなく、
public class ViewModel
{
public ViewModel()
{
MyCommand = new RelayCommand(p => DoSomething());
}
public ICommand MyCommand
{
get;
private set;
}
// ... stuff ...
}
ここで遅延初期化を使用する利点は何ですか? バインディングを設定するときに get プロパティを呼び出す必要があるため、コンストラクターでの設定よりもこのメソッドを使用する理由がわかりません。
ここで何か不足していますか?