Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Découvrir Windows Presentation Foundation

Réaliser une liaison de données

Testez gratuitement nos 1340 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez réaliser votre première liaison de données en utilisant la syntaxe d'extension de markup binding.
06:41

Transcription

Abordons un cas pratique de notre interface. La première chose que je fais, quand je démarre Sql Trismegiste, c'est que j'alimente ici une TreeView qui va avoir la liste de mes opérations, c'est-à-dire que je vais lancer des requête sur Sql server de façon à avoir des informations de diagnostic. Ces requêtes sont classées dans des groupes, donc dans des Folders de mon TreeView, ensuite j'ai une liste de requêtes. Et ce que j'ai fait c'est d'avoir toutes mes requêtes dans les fichiers XML. Je vais vous montrer, j'ai un certain nombre de répertoire et j'en ai un qui s'appelle CorpusHermeticum ça vient de Trismégiste, Hermès Trismégiste qui a écrit un volume qui s’appelle le Corpus Hermeticum. Voilà c'est un personnage de l'antiquité un peu mythique. A l'intérieur j'ai des documents XML, un schéma pour valider mes documents. Le premier document que je charge s'appelle juste Folders.XML. Si je regarde son contenu, j'ai juste une liste de Folders, de Folder avec un nom, et puis un Display avec une langue de façon à pouvoir, toujours, gérer plusieurs langues. Je vais dire que pour le Folder Server, son label, c'est « Système » en français, et puis je peux rajouter ensuite dans mon XML des langues différentes, OK. Donc la première chose à faire est de parcourir ces Folders et d'afficher dans mon TreeView mes premiers niveaux de Folder qui seront ceux-ci. Je le fais de la façon suivante, dans mon code. Ici j'ai rajouté juste la partie d'alimentations de ce premier niveau. Ici, dans une région, alors je fais comme ça. J'ai une liste d'objets de type Folder, si je vais regarder de quoi il s'agit, j'ai juste créé une classe qui va contenir le Nom, le Display et le Tooltip, voilà. Ensuite je vais alimenter cette classe à partir de XML, en mettant, dans le Display, l'étiquette par rapport à la langue, le Tooltip aussi par rapport à la langue actuelle de l'utilisateur. Ça se fait ainsi, assez simplement. J'ai une méthode qui s'appelle PopulateFolders, je crée de nouvelle liste de Folder, j'ouvre mon document ici, toujours au même endroit, je fais une liste de nœuds, voilà c'est assez classique, je fais un « for each » de mes nœuds, et puis je crée un nouveau Folder pour chaque nœud que je trouve. J'ajoute les propriétés ici en utilisant la possibilité de faire une instanciation et une affectation automatique dans l'instanciation, et puis je l'ajoute à ma liste de Folders. J'ai donc à la fin ici mon membre privé, ici mon membre public, c'est-à-dire ma propriété qui est publique, qui est liste de Folder. Lorsque je fais un set, c'est-à-dire ici, finalement, eh bien je vais déclencher OnPropertyChanged pour dire que Folder a été changé. Le OnPropertyChanged devrait déclencher la mise à jour de mes Folders. Mais ce que je vais faire de toute façon, c'est maintenant dans mon XAML, faire un Binding. Je vais dire qu'il faut que ce TreeView soit lié à ça finalement, à cette propriété de mon ViewModel. ViewModel qui a été déclaré comme étant le DataContext de ma View, vous vous souvenez, je reviens ici, sur mon constructeur. J'ai dit, que j'ai créé l'instance de mon ViewModel et que je l'attribuais comme DataContext. Donc ce que je vais faire juste ici et juste avant, c'est dire que maintenant j'ai créé une nouvelle instance de mon ViewModel et de mon ViewModel je vais appeler PopulateFolders, de façon à lire le XML, alimenter ma propriété (une liste de Folders), et ensuite je vais l'attribuer au DataContext. Je n'aurais pas besoin de faire un PropertyChanged ici puisque au moment où je vais attribuer mon DataContext, j'aurais déjà les données, elles vont pouvoir s'afficher. Ce n'est pas fini, il me manque une chose, bien entendu. Il faut que j'aille dans mon XAML, au niveau de mon TreeView et là, que j’indique que ce TreeView est lié à Folder, donc la propriété de mon ViewModel. On est d'accord que j'ai juste à mettre Folder parce qu'il fait partie du Datacontext. J'ai ici une chose à faire, je vais attribuer à une propriété de mon TreeView ma propriété Folder qui vient du ViewModel. J'ai pas besoin d'indiquer autre chose que Folder, ici, puisque le DataContext est le ViewModel, et donc Folder est à l'intérieur de mon ViewModel. Quelle est cette propriété ? Dans TreeView, c'est simplement ItemsSource. Et ItemsSource, ça vient d'où ? Il faut que j'utilise maintenant une extension de Markup, comme ça, pour dire : « La Source, tu vas faire un Binding, tu vas aller à chercher ». Et dans quoi ? Dans Folders. Vous ne vous inquiétez pas, si vous ne le voyez pas forcément ici. C'est les aléas d'IntelliSense, il est, d'ailleurs, possible que... pourtant j'ai bien mon DataContext, ce n'est pas très grave, si vous ne le voyez pas, essayez à la compilation et vous verrez si ça passe. Donc je récapitule, mon TreeView a son ItemsSource lié à Folder, alors attendez, j'ai mis Folders, je vérifie quand même, que c'est bien Folders, oui, on est d'accord. Ensuite dans mon CodeBehind j'ai déclenché PopulateFolders, J'aurais pu le mettre dans le constructeur enfin bref, je l'ai déclenché ici, Vous faîtes comme vous voulez. Ensuite j'attribue le DataContext. Et donc à ce moment-là on devrait être bon pour au moins voir un peu d'affichage. On va voir ce que ça donne. C'est pas mal ! On a donc nos Folders, on n'y est pas encore, on a compris, mais on a bien réussi notre Binding, sauf que le problème, c'est ici, on a fait un Binding sur un objet, donc il me fait un to string et il m'affiche évidemment le type, même de mon objet, c'est-à-dire un type Folder. On va devoir aller un peu plus loin dans le formatage de notre TreeView, pour indiquer clairement à WPF qu'est-ce qu'on veut afficher de tout ça.

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 !