2009-06-11 19 views
17

Recientemente perdí mucho tiempo tratando de depurar una cuadrícula de datos WPF (desde el WPF Toolkit). Tenía una columna vinculada a una consulta de linq con una propiedad que arrojaba una excepción (en algunas filas). WPF parece captar la excepción y simplemente deja las celdas en blanco. He solucionado el error que causa la excepción, pero me gustaría cambiar el comportamiento de WPF. Siempre quiero saber si algo está mal. ¿Por qué está tragando la excepción el comportamiento predeterminado y cómo puedo cambiarlo?¿Por qué el enlace de datos WPF traga excepciones?

Respuesta

12

Los errores de encuadernación se tragan de forma nativa, pero se muestran en el diálogo de SALIDA en la interfaz del estudio visual. Si desea recibir una notificación (y tener tanto control sobre ella como sea posible), puede usar Fuentes de rastreo.

Bea Stollnitz ofrece una gran valoración crítica acerca de este (y debuginng las fijaciones en general) aquí: http://www.beacosta.com/blog/?p=52

Al parecer, este blog se ha marchado, pero sí tenemos la Máquina Wayback: http://web.archive.org/web/20091103200557/http://www.beacosta.com/blog/?p=52

también añadido a mi cuaderno Codificación para Evernote: https://www.evernote.com/pub/view/sswrighton/coding/f9786746-94c3-41b5-bcd2-c12992d331a6?locale=en#st=p&n=f9786746-94c3-41b5-bcd2-c12992d331a6

+0

El enlace está muerto. ¿Podrías actualizarlo? – yumaikas

-1

Habilitación de excepciones de primera oportunidad en el depurador (Depurar -> Excepciones) ayudará con esto también, aunque puede ser molesto

+0

En realidad, eso no causa esta variedad de excepciones para interrumpir la ejecución por alguna razón. – PeterAllenWebb

+0

Si no, has hecho algo mal, esto definitivamente interrumpirá la ejecución, lo he hecho antes. –

5

Aquí es mi favorite. Funciona sin cambiar el app.config

+0

Gracias, ya tenía una implementación de 'BindingListener' pero esto es mucho más impresionante. – Dennis

+0

El enlace está muerto. Aquí hay una copia de seguridad en Wayback Machine: http://web.archive.org/web/20110817030818/http://www.jasonbock.net/JB/Default.aspx?blog=entry.0f221e047de740ee90722b248933a28d –

0

he implementado una solución muy similar al propuesto por Karsten:

  1. Derivado un TraceListener que lanza en lugar de entrar
  2. añadió que escucha a PresentationTraceSources.DataBindingSource

Consulte el complete solution on GitHub, incluye una aplicación de demostración y un proyecto de prueba de unidad.

Exception in Visual Studio

Cuestiones relacionadas