Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does WPF databinding swallow exceptions?

I recently wasted a lot of time trying to debug a WPF datagrid (from the WPF Toolkit). I had a column bound to a linq query with a property that was throwing an exception (in a few rows). WPF seems to catch the exception and it just makes the cells blank. I have fixed the bug causing the exception, but I would like to change WPF's behavior. I always want to know if something is wrong. Why is swallowing the exception the default behavior and how can I change it?

like image 402
Struan Avatar asked Jun 11 '09 01:06

Struan


3 Answers

Databinding errors are swallowed natively, but they are displayed in the OUTPUT dialog in the visual studio interface. If you wish to be notified (and have as much control over it as possible), then you can use Trace Sources.

Bea Stollnitz provides a great writeup about this (and debuginng the bindings in general) here: http://www.beacosta.com/blog/?p=52

Apparently, this blog has departed, but we do have the WayBack Machine: http://web.archive.org/web/20091103200557/http://www.beacosta.com/blog/?p=52

I also added it to my Coding notebook for Evernote: https://www.evernote.com/pub/view/sswrighton/coding/f9786746-94c3-41b5-bcd2-c12992d331a6?locale=en#st=p&n=f9786746-94c3-41b5-bcd2-c12992d331a6

like image 152
Stephen Wrighton Avatar answered Nov 17 '22 19:11

Stephen Wrighton


Here is my favorite. It works without changing the app.config

like image 27
Karsten Avatar answered Nov 17 '22 18:11

Karsten


In case you would like to setup a validation for it, you can add ExceptionValidationRule

http://msdn.microsoft.com/en-us/library/system.windows.controls.exceptionvalidationrule.aspx

like image 1
JoshKraker Avatar answered Nov 17 '22 17:11

JoshKraker