Est-il un bon outil pour le débogage de code XAML de la liaison de données de comportement / les erreurs à l'exécution?
WPF est un grand ensemble d'outils, et XAML de la liaison de données est très puissant, mais j'ai souvent de la difficulté découlant de la transparence: Il peut être difficile de déboguer une défaillance de la liaison de données lorsqu'aucune erreur n'est renvoyée.
Par exemple, j'ai récemment eu à changer un Style
déclaration comme ceci:
<DataGrid.RowStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding TestProperty}" Value="False">
<Setter Property="DataGridRow.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Dans cette:
<DataGrid.RowStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.TestProperty}" Value="False">
<Setter Property="DataGridRow.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Pour la DataGridRow propriété d'être affectés. Il serait très utile de voir, lors de la conception ou de l'exécution, quelles sont les implications de liaison de différentes sources et RelativeSource
s serait.
Faire de tels outils /techniques existent?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
PresentationTraceSources.TraceLevel
propriété attachée sur les liaisons pour obtenir une journalisation détaillée dans la production au cours de l'exécution.Dans votre cas, il ressemblera à ceci:
Bea Stollnitz a un blog très instructif post sur débogage WPF liaisons.
Si vous utilisez Visual Studio 2010, vous aurez besoin de mise à jour de la valeur par défaut WPF trace de réglage.
Si vous exécutez votre application sous le débogueur de Visual Studio, contraignant les erreurs seront signalées à la fenêtre de sortie. Ceux-ci sont très instructif et devrait vous aider à traquer les erreurs.
Une autre option dans Visual Studio 2010 est de mettre un point d'arrêt sur la liaison. Cela peut facilement être fait en mettant votre cliquant sur la Liaison de mots clés et en appuyant sur F9 pour définir le point d'arrêt. La Liaison de mots clés seront mis en évidence en rouge. Si une plus grande partie du texte est sélectionnée, il se peut que le point d'arrêt ne fonctionne pas dans l'éditeur que vous utilisez. Si cela se produit, essayez de droit-cliquant sur le fichier dans l'Explorateur de solutions, sélectionnez "Ouvrir avec" et choisir "Code Source (Texte) de l'Éditeur".
Quand vous frappez le point d'arrêt au moment de l'exécution, vous pouvez l'examiner à l'aide de la population locale fenêtre de débogage et de voir ce que c'est lié.
{Binding ...
n'a aucun effet. Pouvez-vous préciser ce que vous êtes en train de faire (peut-être avec une capture d'écran) pour y parvenir?