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
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
Nel caso in cui si vorrebbe installare una convalida per esso, è possibile aggiungere ExceptionValidationRule
http://msdn.microsoft.com/en-us/library/system.windows.controls.exceptionvalidationrule.aspx
Attivazione delle eccezioni prima occasione nel debugger (Debug -> eccezioni) aiuterà con questo pure, se si può ottenere fastidioso
In realtà, ciò non causa questa varietà di eccezioni per interrompere l'esecuzione per qualche motivo. – PeterAllenWebb
In caso contrario, hai fatto qualcosa di sbagliato - questo sicuramente interromperà l'esecuzione, l'ho già fatto prima. –
Ecco il mio favorite. Funziona senza cambiare l'app.config
Grazie, avevo già un'implementazione di 'BindingListener', tuttavia questo è significativamente più impressionante. – Dennis
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 –
ho implementato una soluzione molto simile a quello proposto da Karsten:
- Derivato un
TraceListener
che getta invece di registrazione - 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.
- 1. Perché WPF inceppare le eccezioni del databinding?
- 2. WPF DataBinding non si aggiorna?
- 3. WPF Databinding: Eccezioni di cattura generate dai getter di proprietà
- 4. Listbox Databinding in WPF
- 5. WPF TabControl Databinding
- 6. WPF Databinding CheckBox.IsChecked
- 7. WPF GroupBox HeaderTemplate e DataBinding
- 8. L'associazione WPF DataGridTextColumn non accetta i decimali
- 9. WPF utilizzando MVVM: DataBinding con RelativeSource
- 10. WPF Databinding con un oggetto Collection
- 11. C# Databinding un XML a listview WPF
- 12. DataGrid Wpf nasconde riga completa tramite DataBinding
- 13. DataBinding WPF: modifica proprietà annullata - Combobox disallinea
- 14. perché il ciclo non accetta direttamente il valore booleano?
- 15. Il databinding WPF rende le cose più dolorose di quanto valga?
- 16. Perché Safari non accetta la compressione GZIP?
- 17. Perché le eccezioni in C++ non vengono controllate dal compilatore?
- 18. Perché python super non accetta solo l'istanza?
- 19. Perché javac non accetta `x = x +++++ y`?
- 20. Perché le funzioni Window non riescono con "La funzione Window X non accetta una specifica frame"?
- 21. Perché MethodInfo.Invoke racchiude le eccezioni in TargetInvocationException?
- 22. Perché le eccezioni AppDomain terminano invariabilmente l'applicazione?
- 23. Perché Akka Streams ingoia le mie eccezioni?
- 24. Java: Perché le classi PrintWriter o PrintStream non generano eccezioni?
- 25. Perché Grails elimina le mie eccezioni?
- 26. Perché le eccezioni da unique_ptr destructor interrompono il programma?
- 27. Disabilita il wrapping delle eccezioni WPF per il debug
- 28. ObservableCollection Prestazioni di Databinding
- 29. Android: Databinding, notifyPropertyChanged() non funziona?
- 30. Xamarin Forms Databinding "." separatore
Il collegamento è morto. Potresti aggiornarlo? – yumaikas