novembre
2011
L’un des buts du pattern MVVM est de permettre la mise en oeuvre de tests unitaires sur l’interface. L’utilisation d’une boite de dialogue (MessageBox, OpenFileDialog, …) n’est pas compatible avec cette approche. Le test unitaire resterai bloqué sur la boite de dialogue en attendant une action utilisateur. En utilisant les TriggerAction nous pouvons isoler la gestion des boites de dialogue et rendre le code du ViewModel testable. » Lire la suite!
mars
2011
Tout le monde connait les codes Snippets et le gain de productivité qu’ils apportent. Ils permettent aussi de formater son code toujours de la même façon. Dans cet article, je fais la liste des codes Snippets que j’utilise le plus souvent. Il y en a bien d’autre, et je complèterai la liste par la suite. Entrée / sortie Lire un fichier Ecrire un fichier WPF / Silverlight Propriété M-V-VM Propriété RelayCommand Dependency Property » Lire […]
janvier
2011
En Wpf il n’est pas possible de faire du Binding sur la propriété source d’un WebBrowser. Si l’on souhaite respecter l’architecture MVVM c’est problématique. Le code suivant ne fonctionne pas : <WebBrowser Source= »{Binding Url} » /> » Lire la suite!
décembre
2010
En Wpf (et en silverlight) lorsque l’on affiche une image sans préciser de dimension on s’attend à voir l’image s’afficher dans sa taille réelle. Si l’image fait 800×600 pixels, l’image en WPF devrait mesurer 800×600 pixels. Cela est vrai uniquement si l’image a une résolution de 96 dpi en largeur et en hauteur. Lorsque l’on ne précise pas de dimension pour une image, WPF utilise les formules suivantes pour calculer les dimensions de l’image : […]
octobre
2010
Si vous utilisez le TabControl en WPF vous avez du remarquer qu’il perd les éléments sélectionnés à chaque fois que l’on change d’onglet. A chaque fois que l’on change d’onlget, si le nouveau ViewModel est du même type que l’ancien, le TabControl conserve l’instance de la vue courante, alors que si le ViewModel est d’un type différent il crée une nouvelle instance de la vue. Avec cette solution, on n’a qu’une seule instance de vue […]
octobre
2010
Pour un projet je devais afficher un ContextMenu sur tous les éléments d’un ListBox et pour chaque éléments les entrées dans le menu pouvaient être différentes. J’ai voulu utiliser le pattern MVVM pour construire ces menus mais après des recherches sur internet il semble que le controle MenuItem ne gère pas bien le binding. Vous trouverez toutes les explications et les exemples ici : http://www.michaelalbaladejo.com/post/2010/10/14/WPF-ContextMenu-et-Binding.aspx
mai
2010
J’ai écrit une série d’articles sur la validation de données en WPF. Dans ces articles j’explique comment créer des règles de validation personnalisée, et je donne des exemples de règles de validation standard tel que AuthorizedValuesValidationRule, RegularExpressionValidationRule, RequiredFieldValidationRule et RangeValidationRule. Je montre aussi comment activer un bouton uniquement lorsque toutes les règles de validation sont satisfaites.