WPF es un gran conjunto de herramientas, y XAML de enlace de datos es muy potente, pero a menudo me he encontrado con dificultades derivadas de su transparencia: Puede ser difícil para depurar un fallo de enlace de datos cuando no se lanzan errores.¿Existe una buena herramienta para depurar comportamientos/errores de enlace de datos de XAML en el tiempo de ejecución?
Por ejemplo, recientemente he tenido que cambiar una declaración Style
así:
<DataGrid.RowStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding TestProperty}" Value="False">
<Setter Property="DataGridRow.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
En esto:
<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>
Para que la propiedad DataGridRow a verse afectada. Sería increíblemente útil ver, en diseño o tiempo de ejecución, cuáles serían las implicaciones de vincularse a diferentes fuentes y RelativeSource
s.
¿Existen tales herramientas/técnicas?
Esto definitivamente ayudó - ¡aceptado! Para completar, ya que inspeccionar el árbol visual en tiempo de ejecución es una preocupación relacionada, también me gustaría señalar [Snoop] (http://www.blois.us/Snoop/) a cualquiera que permanezca ajeno a sus encantos. –
La versión más reciente de Snoop se puede encontrar en CodePlex: http://snoopwpf.codeplex.com/ –
Útil para mí fue el Tracelevel correcto en la ventana de resultados. Opciones> Depuración> Ventana de salida> Enlace de datos. Como se describe aquí: http://karlshifflett.wordpress.com/2010/06/24/visual-studio-2010-wpf-trace-settings-default-is-incorrect – uli78