当使用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属性,所以我看不出使用这种方法的理由,与在构造函数中设置一切相比。
我有什么地方没理解到吗?