visual tutorial studio depurar como .net wpf xaml

.net - tutorial - ¿Existe una buena herramienta para depurar el comportamiento/errores de enlace de datos de XAML en el tiempo de ejecución?



como depurar en visual studio 2017 (4)

Bea Stollnitz tiene una publicación de blog muy informativa sobre la depuración de enlaces WPF .

Si está utilizando Visual Studio 2010, deberá actualizar la configuración de rastreo predeterminada de WPF .

WPF es un gran conjunto de herramientas, y el enlace de datos XAML es muy poderoso, pero a menudo he tenido dificultades debido a su transparencia: puede ser difícil depurar un fallo de enlace de datos cuando no se producen errores.

Por ejemplo, recientemente tuve que cambiar una declaración de Style como esta:

<DataGrid.RowStyle> <Style> <Style.Triggers> <DataTrigger Binding="{Binding TestProperty}" Value="False"> <Setter Property="DataGridRow.Background" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> </DataGrid.RowStyle>

Dentro de 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 se vea afectada. Sería increíblemente útil ver, en diseño o en tiempo de ejecución, cuáles serían las implicaciones de vincularse a diferentes fuentes y RelativeSource .

¿Existen tales herramientas / técnicas?


Otra opción en Visual Studio 2010 es poner un punto de interrupción en el enlace. Esto se puede hacer fácilmente haciendo clic en la palabra clave de enlace y presionando F9 para establecer el punto de corte. La palabra clave de enlace se resaltará en rojo. Si se resalta un trozo más grande de texto, es posible que el punto de interrupción no funcione en el editor que está utilizando. Si esto sucede, intente hacer clic derecho en el archivo en el Explorador de soluciones, seleccione "Abrir con" y elija "Editor de código fuente (texto)".

Cuando llegue al punto de interrupción en el tiempo de ejecución, puede examinarlo utilizando la ventana del depurador de Localidades y ver a qué está obligado.


Puede usar la propiedad adjunta PresentationTraceSources.TraceLevel en los enlaces para obtener un registro detallado en el resultado durante el tiempo de ejecución.

En tu caso, se verá así:

<DataGrid.RowStyle> <Style> <Style.Triggers> <DataTrigger Value="False" Binding="{Binding DataContext.TestProperty, RelativeSource={RelativeSource AncestorType=UserControl}, PresentationTraceSources.TraceLevel=High}"> <Setter Property="DataGridRow.Background" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> </DataGrid.RowStyle>


Si ejecuta su aplicación en el depurador de Visual Studio, los errores de enlace se informarán en la ventana de resultados. Estos son muy informativos y deberían ayudarlo a rastrear cualquier error.