DebugConverter: espionner la valeur d'un binding

Les bindings WPF sont partout, mais il n'est malheureusement pas simple de les étudier de manière interactive. La méthode exposée ici est devenue un classique et elle consiste en l'application d'un IValueConverter sur l'attribut Converter d'un binding. Ce convertisseur est forcément écrit en code et reçoit forcément la donnée bindée pour pouvoir la convertir: le déclenchement d'un point d'arrêt dans celui-ci nous permettra donc d'utiliser le débogueur pour visualiser nos données.

Dans le fichier XAML:

<!-- On déclare le convertisseur plus haut dans les ressources--> 
<utils:DebugConverter x:Key="DebugConverter"/>
...
<TextBlock FontWeight="Bold" Text="{Binding Converter={StaticResource DebugConverter }} "/> 

 

On passe dans le convertisseur lorsque le binding est appliqué, ce qui provoque un point d'arrêt dans votre débogueur. On peut ainsi analyser la donnée bindée par le biais d'un espion:

 Point d'arrêt

Si vous souhaitez approfondir ce sujet, Beatriz Costa a écrit un post décrivant comment déboguer un binding par le biais de traces. Ces techniques, bien que moins interactives, fournissent une très fine granularité qui vous sera utile pour dépanner vos bindings les plus complexes.

DebugConverter.cs