2010-03-13 2 views
4

Étant nouveau à la fois WPF et MVVM, j'étudie Josh Smith's article on the MVVM pattern et l'exemple de code d'accompagnement.Comment les vues sont-elles construites dans l'échantillon MVVM de Josh Smith?

Je peux voir que l'application est démarrée en app.xaml.cs en construisant un objet MainWindow, en le câblant à un objet MainWindowViewModel puis en affichant la fenêtre principale. Jusqu'ici tout va bien. Toutefois, je ne trouve aucun code qui instancie les classes AllCustomersView ou CustomerView. L'utilisation de "trouver toutes les références" sur les constructeurs de ces vues ne donne rien. Qu'est-ce que j'oublie ici?

Répondre

6

Le DataTemplate de WPF fait la magie. Par exemple lorsque vous définissez le contenu d'un ContentControl avec une instance de CustomerViewModel avec le DataTemplate ci-dessous dans votre dictionnaire de ressources (généralement dans app.xaml). Ensuite, vous allez voir le contrôle client CustomerView à venir dans l'interface utilisateur.

<DataTemplate DataType="{x:Type vm:CustomerViewModel}"> 
    <vw:CustomerView /> 
</DataTemplate> 
+0

Ah merci, j'ai trouvé le mappage dans 'MainWindowResources.xaml' maintenant. –

+0

Salut Jobi, je sais que c'est un vieux post, mais j'ai une question connexe, donc je serais heureux d'avoir votre avis: j'ai réussi à comprendre que chaque fois que nous définissons la propriété content à l'instance xxxViewModel, un objet xxxView sera rendu . Mais je ne pourrais pas trouver où il a réellement placé la propriété de contenu dans le code ...? –

Questions connexes