Lors de l'utilisation de RelayCommand Josh Smith, la plupart des exemples que je l'ai vu utiliser l'initialisation paresseuse comme:Pourquoi les RelayCommands utilisent-ils généralement une initialisation paresseuse?
public class ViewModel
{
private ICommand myCommand;
public ICommand MyCommand
{
get
{
if (myCommand == null)
{
myCommand = new RelayCommand(p => DoSomething());
}
return myCommand;
}
}
// ... stuff ...
}
Plutôt que de créer le RelayCommand dans le constructeur, comme celui-ci:
public class ViewModel
{
public ViewModel()
{
MyCommand = new RelayCommand(p => DoSomething());
}
public ICommand MyCommand
{
get;
private set;
}
// ... stuff ...
}
Quelle est la avantage d'utiliser l'initialisation paresseux ici? Il devra appeler la propriété get lors de la mise en place de la liaison, donc je ne vois pas de raison d'utiliser cette méthode sur les réglages du constructeur.
Ai-je oublié quelque chose ici?
Vous avez raison. L'initialisation paresseuse de RoutedCommands n'a aucun sens car elles sont très légères et elles sont chargées de toute façon dès que View les lie. – jbe