Недавно я потратил много времени, пытаясь отладить WPAT файл (из WPF Toolkit). У меня был столбец, связанный с запросом linq с свойством, которое бросало исключение (в несколько строк). Кажется, что WPF блокирует исключение, и он просто делает ячейки пустыми. Я исправил ошибку, вызывающую исключение, но я хотел бы изменить поведение WPF. Я всегда хочу знать, что-то не так. Почему происходит проглатывание исключения по умолчанию и как его изменить?
Почему привязка данных WPF к исключению ласточки?
Ответ 1
Ошибки привязки заглатываются изначально, но они отображаются в диалоговом окне OUTPUT в интерфейсе визуальной студии. Если вы хотите получать уведомления (и иметь как можно больше контроля над ним), вы можете использовать источники трассировки.
Bea Stollnitz предлагает отличную запись об этом (и debuginng привязки вообще) здесь: http://www.beacosta.com/blog/?p=52
По-видимому, этот блог ушел, но у нас есть WayBack Machine: http://web.archive.org/web/20091103200557/http://www.beacosta.com/blog/?p=52
Я также добавил его в свой блокнот для Evernote: https://www.evernote.com/pub/view/sswrighton/coding/f9786746-94c3-41b5-bcd2-c12992d331a6?locale=en#st=p&n=f9786746-94c3-41b5-bcd2-c12992d331a6
Ответ 2
Вот мой фаворит. Он работает без изменения app.config
Ответ 3
Если вы хотите установить для него валидацию, вы можете добавить ExceptionValidationRule
http://msdn.microsoft.com/en-us/library/system.windows.controls.exceptionvalidationrule.aspx
Ответ 4
Я реализовал решение, очень похожее на решение, предложенное Карстеном:
- Производится a
TraceListener
, который генерирует вместо ведения журнала - Добавил, что прослушиватель
PresentationTraceSources.DataBindingSource
Пожалуйста, см. полное решение на GitHub, оно включает демонстрационное приложение и проект unit test.
Ответ 5
Включение первых исключений шансов в отладчике (Debug → Exceptions) также поможет в этом, хотя может раздражать