[new:20/5/2010] Êtes-vous plutôt Hard ou Soft ? Ok, c’est trop personnel comme question. Mais si on la pose à une ListBox immédiatement on se sent plus à l’aise pour répondre… Plus...
Promis dans mon dernier billet, le voici enfin ! Ce nouvel article dédié au binding Xaml pèse 77 pages (le record était tenu jusqu’à lors par mon article M-V-VM avec Silverlight avec 70 pages) et se présente sous la forme d’un PDF et de 9 projets exemples.
Le binding cet inconnu … J’en parlais dans mon billet Le retour du spaghetti vengeur, le binding avec sa syntaxe pleine d’accolades et de chaînes de caractères non contrôlées à la compilation est un piège à bugs et la porte ouverte au code spaghetti.
Plutôt que de me lamenter et vous laisser vous embourber dans la sauce de ces spaghetti là, j’ai pris ma plume, et voici le résultat : 77 pages sur le binding Xaml, son fonctionnement, ses différentes syntaxes le tout illustré par des exemples clairs. L’article aborde aussi le débogue du binding assez délicat puisque Xaml échappe au débogueur de Visual Studio, et que le binding n’est que partiellement couvert par Intellisense.
Des conseils, du vécu, beaucoup d’exemples, voilà ce que vous trouverez dans cet article à télécharger en suivant le lien suivant :
Le Binding Xaml – Maîtriser sa syntaxe et éviter ses pièges (WPF/Silverlight)
(Attention, avant de cliquer sur le bouton “télécharger” attendez que la fiche détail de l’article soit bien affichée, sinon le site pensera que vous tentez un accès à une ressource non publique et vous demandera un login… Je reçois tous les jours des demandes d’ouverture de compte provenant de lecteurs trop impatients qui cliquent trop vite sur le bouton ! La prochaine version du site en Silverlight est en préparation et corrigera ce petit problème, mais d’ici là : slow down cowboy !).
Pour vous aider à vous faire une idée du contenu de l’article voici son sommaire :
Sommaire
- Références 5
- Code Source 6
- Préambule 7
- Le Binding Xaml : Ange ou Démon ? 7
- Le Binding 8
- Définition 8
- Utilisations 9
- Schéma du principe 9
- Déclaration 10
- Les modes de binding 13
- Le mode OneTime 13
- Le mode OneWay 13
- Le mode TwoWay 14
- Le mode Default 16
- Le mode OneWayToSource 16
- Hiérarchie de valeur 18
- La notion de DataContext 20
- Les convertisseurs de valeur 21
- Définition 21
- Scénario 21
- Implémentation 22
- Utilisation 23
- Instanciation 23
- Invocation 23
- Bonnes pratiques 24
- Pour résumer 26
- Les dangers du Binding 27
- Des chaînes non contrôlées 27
- Un langage dans le langage 28
- On fait quoi ? 28
- Déboguer le Binding 28
- Vigilance 28
- Une code Xaml court 29
- Refactoring sous contrôle 29
- Utiliser des outils intelligents 29
- Utiliser Expression Blend 29
- Vérifier les erreurs de binding dans la fenêtre de sortie 30
- Créer un fichier des erreurs de Binding 30
- La feinte du convertisseur inutile 32
- Quelques outils supplémentaires 33
- Spy++ 33
- ManagedSpy 33
- Snoop 34
- Mole 34
- Reflector 34
- Vos neurones 34
- Les syntaxes du Binding 34
- Le binding simple 34
- Binding direct 35
- Binding sur une propriété 35
- Binding sur une sous-propriété du contexte 36
- L’Element Binding 37
- Convertisseurs de valeur 37
- Paramètres de conversion 38
- StringFormat 40
- Injection de culture 41
- Le ContentStringFormat 42
- Gérer les nuls 43
- Le Binding Multiple 44
- La classe Personne 44
- Le code du multi convertisseur 45
- Le code Xaml 46
- Le Binding XML 47
- Binding sur une source Web 47
- Binding sur une source XML en ressource 48
- Binding sur une requête Linq To XML 49
- Le Binding Relatif 52
- Binding to Self 52
- Le TemplatedParent Binding 53
- Le Binding sur recherche d’ancêtre 54
- Le Binding PreviousData 56
- La source de données 58
- La visibilité des flèches : la magie de PreviousData et du Binding Multiple 58
- Le contenu des textes 61
- Le Template binding 61
- Le Collection Binding 67
- Le Priority Binding 69
- Les propriétés de tous les bindings 74
- Conclusion 76
Avril est froid et pluvieux mais les soirées rallongent, c’est le printemps même si cela n’y ressemble pas encore beaucoup, grâce à moi vous savez maintenant comment occuper vos soirées et vos weekend au lieu de faire l’idiot dans les embouteillages des vacances : Lisez cet article !
Et Stay Tuned !
L’une des avancées les plus intéressantes introduite dans Silverlight 2 (puis reprise sous WPF et naturellement sous Silverlight 3) est très certainement le Visual State Manager. Gestionnaire des états visuels simplifiant la conception visuelle des contrôles (UserControl). Bien utiliser le VSM, outre de rendre plus simple la représentation des états visuels d’un composant, apporte aussi une clarification essentielle à la gestion des transitions entre ces derniers.Plus...
Microsoft prépare déjà la prochaine version de Blend qui, avec la version 3, est déjà un outil d'une grande maturité. Mais on peut toujours faire mieux... Alors au lieu de grogner dans votre coin, dites ce que vous aimez ou pas, proposez ce qui vous semble manquer, bref répondez au sondage lancé par l'équipe Blend : https://connect.microsoft.com/Expression/Survey/Survey.aspx?SurveyID=9391
Attention, ce sondage est assez long (pas énorme mais bien plus que trois cases à cocher) prévoyez un petit quart d'heure, et, of course, totalement en anglais avec pas mal de zones de commentaires qu'il faudra remplir dans la même langue. N'oubliez pas que google traduction est votre ami et qu'il vaut mieux donner votre avis que de vous taire, même si certains commentaires sont traduits par une machine (demandez à un collègue plus anglophone que vous de relire quand même :-) ).
A la clé, un Zune à gagner par tirage au sort. Mais surtout, un Blend 4 plus proche de vos besoins.
Alors exprimez-vous !
En voilà un beau sujet ! Vous allez me dire qui irait investir deux jours à taper 25 pages sur ce sujet, il faut être totalement givré ! Et bien vous en avez un devant vous (par blog interposé) ... donc pas de remarques désobligeantes sur ma santé mentale, hein !
Certes les propriétés de dépendance et les propriétés jointes de WPF et Silverlight ne semblent pas être un sujet aussi exitant que quelques astuces LINQ ou la meilleure façon d'intégrer de la 3D dans Silverlight 3 (miam!)... Je vous le concède. Mais en revanche c'est un sujet capital car derrière ces propriétés bien particulières se cache l'un des piliers de la puissance de WPF, un mécanisme qui autorise la gestion des styles, des animations, du Data Binding et de bien d'autres choses sans lesquelles WPF ne serait pas ce qu'il est.
Savoir ce qu'est une propriété de dépendance ou une propriété jointe, savoir en déclarer et savoir les utiliser représente une base impossible à zapper.
Alors, pour tout savoir sur le sujet, téléchargez mon dernier article "Propriétés de dépendance et propriétés jointes (WPF/Silverlight)" !
L'article est fourni en PDF avec les sources du projet exemple (utilisable sous VS 2008 ou Blend 2).
NB: Pour mieux comprendre cet article si vous n'êtes pas encore un expert de WPF, je vous conseille la lecture de mon précédent article "10 bonnes raisons de préférer WPF".
Bonne lecture,
... Et Stay Tuned !