Cuando se utiliza, la mayoría de los ejemplos que he visto el uso de inicialización perezosa de RelayCommand Josh Smith, tales como:¿Por qué RelayCommands suele utilizar la inicialización lenta?
public class ViewModel
{
private ICommand myCommand;
public ICommand MyCommand
{
get
{
if (myCommand == null)
{
myCommand = new RelayCommand(p => DoSomething());
}
return myCommand;
}
}
// ... stuff ...
}
En lugar de crear el RelayCommand en el constructor, como esto:
public class ViewModel
{
public ViewModel()
{
MyCommand = new RelayCommand(p => DoSomething());
}
public ICommand MyCommand
{
get;
private set;
}
// ... stuff ...
}
¿Cuál es la beneficio de usar la inicialización perezosa aquí? Tendrá que invocar la propiedad get al configurar el enlace, por lo que no veo una razón para utilizar este método en la configuración del constructor.
¿Falta algo aquí?
Tienes razón. La inicialización lenta de RoutedCommands no tiene ningún sentido porque son muy livianos y se cargan de todos modos tan pronto como la Vista se adhiere a él. – jbe