Découvrir Windows Presentation Foundation

Créer un ViewModel

Testez gratuitement nos 1266 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Apprenez à créer un ViewModel qui fera l'interface entre la vue et le modèle. Ainsi, aidez-vous de notifications de propriété.
04:50

Transcription

Dans mon projet, je vais créer un dossier que je vais appeler ViewModel. C'est une bonne pratique, c'est en tout cas une habitude intéressante à prendre, donc mes ViewModels et je vais créer une nouvelle classe, une classe toute simple, que je vais appeler par exemple, comme je suis dans ma MainWinow, je vais créer un ViewModel qui s'appelle simplement Main. Donc pensez, si vous avez l'habitude du pattern MVC à votre ViewModel comme une sorte de contrôleur, mais c'est un contrôleur un peu particulier puisqu'il permet du binding, de la notification et donc l'échange entre le ViewModel et la Vue est quand même beaucoup plus simple. Donc je suis ici dans SQLTrismegiste.ViewModel et ma classe s'appelle Main. Je vais pouvoir maintenant ajouter des propriétés et des méthodes à ma classe. Les propriétés serons gérées par liaisons de données et pourront mettre à jour l'interface et puis les méthodes sont du comportement qui sera déclenché à partir des événements que je vais gérer dans ma vue. Donc je retourne dans ma vue je vais dans le code behind et à ce niveau-ci dans le constructeur, juste après InitialisedComponent qui déclenche l'initialisation d'affichage. D'abord je vais créer une variable privée pour une instance de mon ViewModel. Donc, ViewModel.Main, là j'utilise un peu mes habitudes. Vous faites peut-être différemment. Et mes membres privés je les préfixe par un souligné. Donc voilà mon ViewModel que j'ai appelé VM pour ViewModel. Ici je vais instancier un nouveau ViewModel. Voilà j'ai un constructeur par défaut, je n'ai pas créé de constructeur. Et puis ce que je vais faire, c'est dire ceci. DataContext, c'est une propriété du framework elements, comme vous pouvez le voir, qui va dire quel est le contexte pour les données. Je vais lui dire le contexte : c'est VM. En fait, je sauvegarde, si vous prenez votre XAML, ça équivaut à dire dans Windows, DataContext, ici, ViewModel.Main qui a été ajouté d'ailleurs ici. Alors, le fait de dire d'une façon déclarative et statique que le Datacontext est de type ViewModel.main. Cela permet aussi d'avoir de l'IntelliSense et puis de pré-vérifier un certain nombre de types que je vais déclarer ici dans mon Binding. Mais ce que je vais faire, c'est dire le DataContext de ma Window. C'est lorsque je commence à exécuter, j'ai créé l’instance de mon ViewModel et je le lie au DataContext, comme ça on sait que c'est vraiment cette instance qui est le ViewModel de l'instance de ma vue. Donc tout ce qui dérive de Framework element a un DataContext. Ce qui va se passer, c'est qu'il y a une notion d'héritage. Si le DataContext de ma Window est un ViewModel.Main, donc par défaut, les DataContext des objets par exemple ici, sous-jacents, hériteront de ce DataContext. Pour une partie dans mon arbre logique, je peux si je le souhaite, à un niveau inférieur, par exemple, dire une Grid, ou vous vous souvenez que j'ai par exemple, un StackPanel et ici j'ai un DataGrid pour Databases. Eh bien, j'ai déjà ici, parce que quand j'ai fait du copier coller, j'ai un peu tout enlever, mais j'ai laissé mon Binding ici, donc, ce n'est pas grave, on va l'utiliser. Mais je pourrais dire, pour mon DataGrid spécifiquement, je fais un autre DataContext qui pourrait être une classe différente qui va gérer le contenu de la DataGrid. Donc je peux bien sur remplacer le DataContext à un niveau inférieur. Mais si je veux rester simple je définis le DataContext pour ma Window et tous les éléments de donnée qui se retrouvent dans ma Window appartiendront au même DataContext. Donc je suis maintenant prêt à deux choses : dans mon Code-behind si j'ai des gestionnaires d'événement je vais pouvoir appeler des méthodes de mon ViewModel et à l'intérieur de la définition de mon XAML de ma vue, eh bien, je vais pouvoir faire du Binding sur des propriétés, que ce soient des propriétés scalaires ou des collections de mon ViewModel, de façon à automatiser la liaison de données.

Découvrir Windows Presentation Foundation

Améliorez la qualité de vos interfaces graphiques avec WPF (Windows Presentation Foundation). Découvrez le langage XAML, définissez votre interface graphique manuellement, etc.

3h12 (40 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 mai 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !