En essayant de maîtriser l'écriture de ViewModels testables dans Silverlight 4. Je suis actuellement en train d'utiliser la lumière MVVM.Silverlight Constructor Injection dans le modèle View + Design Mode
Im utilisant AutoFac et le IoCContainer fait son travail bien. Cependant, pour injecter dans le constructeur de ViewModels, qui sont liés à ce Vues je constructeur Enchaînement:
public UserViewModel() : this(IoCContainer.Resolve<IUserServiceAsync>())
{
}
public UserViewModel(IUserServiceAsync userService)
{
if (this.IsInDesignMode) return;
_userService = userService;
}
Ce qui ne se sent pas propre, mais est la meilleure option que j'ai trouvé jusqu'à présent. Cela fonctionne et mon application fonctionne comme vous le souhaitez, et est testable avec contrôle inversé.
Cependant, avec ma VM lié à mon avis comme celui-ci:
<UserControl.DataContext>
<ViewModel:UserViewModel />
</UserControl.DataContext>
Dans mes attributs de page XAML, le mode de conception à la fois VS2010 et Blend travail ne marche pas.
Y a-t-il une façon plus agréable de réaliser ce que j'essaie dans Silverlight qui fonctionne encore avec le mode design? Perdre le mode de conception n'est pas un briseur d'affaire, mais sera utile lors de l'apprentissage de XAML. Un nettoyeur non enchaîné serait bien quand même! Je pense qu'il est peut-être possible d'utiliser AutoFac/IoC pour résoudre les viewmodels aux vues, comme cela est associé à l'approche de balisage XAML ci-dessus, et suivre cette voie?
Merci.
Merci pour la réponse détaillée! – Jammin