J'utilise MVVM depuis deux ans et ça a certainement évolué pour le mieux depuis ce temps. En lisant les centaines d'articles MVVM et les questions de stackoverflow, j'ai remarqué qu'il y a de plus en plus d'articles qui décrivent la relation view/viewmodel et la création comme ViewModel en premier ou View en premier. Ces articles utilisent généralement IoC ou DI. J'inclurais des liens, mais en tant que nouvel utilisateur SO je suis seulement limité à 1.WPF - MVVM - Quels sont les avantages et les inconvénients des différentes techniques de création de vues?
Ma technique préférée a été l'utilisation de datatemplates pour créer les vues, et de structurer l'application sur les viewmodels plutôt que sur les vues . Je vois rarement des articles qui utilisent ce modèle.
<DataTemplate DataType="{x:Type ViewModels:DummyViewModel}">
<Views:DummyUserControl DataContext="{Binding}"/>
</DataTemplate>
testabilité et le découplage semble être le principal objectif de ces « non-DataTemplate » création V-VM/conceptions des relations et des articles, et souvent ils doivent faire avec ou PRISM MEF. En fin de compte, je voudrais savoir ce qui suit:
- La technique de création de vue DataTemplate est-elle toujours utilisée ou recommandée?
- Quels sont les avantages/inconvénients de la vue première conception?
- Quels sont les avantages/inconvénients de la première conception viewmodel (avec la vue injectée)
Je me rends compte ce sont des questions qui méritent des réponses en vrac en vrac.
Tout bon lien vers des articles traitant de ces sujets est apprécié, à condition qu'ils ne soient pas liés au MEF/PRISM. Le plus c'est le mieux. (Google en est un bon nombre)
Bien que les clous mes propres expériences et opinions 100%. Avec tant de choses récemment écrites sur l'utilisation de conteneurs pour générer les vues et les modèles de vue, je commençais à m'inquiéter de manquer le bateau. Est-ce que vous injectez votre vue dans votre viewmodel en utilisant une interface? Personnellement, je ne veux pas que mes viewmodels aient une quelconque référence à la vue. – user259509
Je n'ai pas mentionné MEF - mais je l'utilise aussi. C'est très utile pour gérer les cas de bords dans les domaines ci-dessus (c'est-à-dire: les services), ainsi que pour faire les modèles de données. Vous pouvez utiliser MEF pour configurer vos DataTemplates depuis votre View, sans avoir à "polluer" votre app.xaml, par exemple ... –
Votre blog (http://reedcopsey.com/) est génial, btw – user259509