2009-06-11 9 views
17

Recentemente ho sprecato un sacco di tempo cercando di eseguire il debug di un datagrid WPF (dal WPF Toolkit). Ho avuto una colonna legata a una query linq con una proprietà che stava generando un'eccezione (in poche righe). WPF sembra catturare l'eccezione e rende solo le celle vuote. Ho corretto il bug che causa l'eccezione, ma vorrei modificare il comportamento di WPF. Voglio sempre sapere se qualcosa non va. Perché ingoiare l'eccezione il comportamento predefinito e come posso cambiarlo?Perché il databinding WPF non accetta le eccezioni?

risposta

12

Gli errori di associazione dati vengono inghiottiti in modo nativo, ma vengono visualizzati nella finestra di dialogo OUTPUT nell'interfaccia di Visual Studio. Se si desidera essere avvisati (e avere il maggior controllo possibile), è possibile utilizzare le origini di traccia.

Bea Stollnitz fornisce una grande interessante resoconto su questo (e debuginng le associazioni in generale) qui: http://www.beacosta.com/blog/?p=52

A quanto pare, questo blog è partito, ma abbiamo la Wayback Machine: http://web.archive.org/web/20091103200557/http://www.beacosta.com/blog/?p=52

anche io aggiunto al mio notebook codifica per 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

Il collegamento è morto. Potresti aggiornarlo? – yumaikas

-1

Attivazione delle eccezioni prima occasione nel debugger (Debug -> eccezioni) aiuterà con questo pure, se si può ottenere fastidioso

+0

In realtà, ciò non causa questa varietà di eccezioni per interrompere l'esecuzione per qualche motivo. – PeterAllenWebb

+0

In caso contrario, hai fatto qualcosa di sbagliato - questo sicuramente interromperà l'esecuzione, l'ho già fatto prima. –

5

Ecco il mio favorite. Funziona senza cambiare l'app.config

+0

Grazie, avevo già un'implementazione di 'BindingListener', tuttavia questo è significativamente più impressionante. – Dennis

+0

Il link è morto. Ecco un backup nella Wayback Machine: http://web.archive.org/web/20110817030818/http://www.jasonbock.net/JB/Default.aspx?blog=entry.0f221e047de740ee90722b248933a28d –

0

ho implementato una soluzione molto simile a quello proposto da Karsten:

  1. Derivato un TraceListener che getta invece di registrazione
  2. aggiunto che ascoltatore a PresentationTraceSources.DataBindingSource

Si prega di vedere il complete solution on GitHub, include un'applicazione demo e un progetto di test unitario.

Exception in Visual Studio

Problemi correlati