Почему привязка данных WPF к исключению ласточки?

Недавно я потратил много времени на отладку данных WPF datagrid (из набора инструментов WPF). У меня был столбец, связанный с запросом linq с свойством, которое бросало исключение (в несколько строк). Кажется, что WPF блокирует исключение, и он просто делает ячейки пустыми. Я исправил ошибку, вызывающую исключение, но я хотел бы изменить поведение WPF. Я всегда хочу знать, что-то не так. Почему происходит проглатывание исключения по умолчанию и как его изменить?

Ошибки привязки данных проглатываются изначально, но они отображаются в диалоговом окне 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

Вот мой любимый . Он работает без изменения app.config

Если вы хотите установить для него валидацию, вы можете добавить ExceptionValidationRule

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

Я внедрил решение, очень похожее на решение, предложенное Карстеном:

  1. Выведено TraceListener которое генерирует вместо ведения журнала
  2. Добавлен этот прослушиватель в PresentationTraceSources.DataBindingSource

Посмотрите полное решение на GitHub , оно включает демонстрационное приложение и проект тестирования модhive.

Исключение в Visual Studio

Включение справки с первым шансом в отладчике (Debug -> Exceptions) также поможет в этом, хотя это может раздражать

  • Общий class наблюдаемого словаря для DataBinding / WPF C #
  • Привязка данных Android с использованием тега include
  • Обход проблемы из-за отсутствия оператора 'nameof' в C # для безопасного хранения данных по типу?
  • Связывающие свойства в коде
  • Есть ли способ определить, где объявляется / создается привязка WPF?
  • WPF: привязка ContextMenu к команде MVVM
  • Как правильно привязать xml к WPF DataGrid?
  • Для чего нужен DataContext?
  • Похоже, что привязки данных не обновляются
  • WPF перед записью
  • Связывание в WPF с элементом массива, заданным свойством
  • Interesting Posts

    Разрешения, восстанавливаемые с Time Machine – копия Finder vs "cp" copy

    Локально объявленные переменные не могут быть проверены

    Как принудительно удалить заблокированный файл, который не имеет блокировки в Windows?

    Можно ли использовать сканер, подключенный к другому компьютеру на моем компьютере?

    В чем разница между операторами короткого замыкания Perl (или, и) и (||, &&)?

    Почему эта реализация offsetof () работает?

    Высококачественное сжатие JPEG с помощью c #

    Использование нескольких версий одной и той же библиотеки DLL

    Как установить язык плиток начального экрана в Windows 8

    Импорт android.support.v7.app невозможен.

    Зачем создавать пользовательские исключения?

    Весенний кратный imapAdapter

    Шифрование учетных данных в приложении WPF

    MS Outlook: как указать другой интервал проверки почты? Каждые 5 минут для обмена и каждые 30 минут для Gmail IMAP?

    jQuery: пожарный щелчок () перед размытием ()

    Давайте будем гением компьютера.