2009-06-11 7 views
17

Niedawno zmarnowałem wiele czasu próbując debugować datagrid WPF (z zestawu narzędzi WPF). Miałem kolumnę powiązaną z zapytaniem linq z właściwością, która rzuca wyjątek (w kilku wierszach). Wydaje się, że WPF wychwytuje wyjątek i po prostu powoduje, że komórki są puste. Naprawiłem błąd powodujący wyjątek, ale chciałbym zmienić zachowanie WPF. Zawsze chcę wiedzieć, czy coś jest nie tak. Dlaczego połknięcie wyjątku jest domyślnym zachowaniem i jak mogę to zmienić?Dlaczego zapis danych w pamięci WPF połknąć wyjątki?

Odpowiedz

12

Błędy wykrywania danych są połknięte natywnie, ale są wyświetlane w oknie dialogowym WYJŚCIE w interfejsie wizualnego studia. Jeśli chcesz być powiadomiony (i mieć jak największą kontrolę nad nim, jak to możliwe), możesz użyć Śledzenie źródeł.

Bea Stollnitz zapewnia dużą writeup na ten temat (i debuginng powiązania w ogóle) tutaj: http://www.beacosta.com/blog/?p=52

Najwyraźniej ten blog odszedł, ale mamy Wayback Maszyna: http://web.archive.org/web/20091103200557/http://www.beacosta.com/blog/?p=52

ja również Dodano go do mojego notebooka Coding dla 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

Link jest martwy. Czy mógłbyś to zaktualizować? – yumaikas

-1

Włączenie Wyjątki pierwszej szansy w debuggera (Debug -> wyjątkami) będzie w tym pomóc, a także, choć może się irytujące

+0

Właściwie to nie powoduje tej różnorodności wyjątków, aby z jakiegoś powodu przerwać wykonywanie. – PeterAllenWebb

+0

Jeśli nie, zrobiłeś coś złego - to na pewno przerwie wykonywanie, już to zrobiłem. –

5

Oto moja favorite. Działa bez zmiany app.config

+0

Dzięki, miałem już wdrożenie 'BindingListener' jednak jest to znacznie bardziej niesamowite. – Dennis

+0

Link nie działa. Oto kopia zapasowa w Wayback Machine: http://web.archive.org/web/20110817030818/http://www.jasonbock.net/JB/Default.aspx?blog=entry.0f221e047de740ee90722b248933a28d –

0

I wdrożone rozwiązanie bardzo podobną do tej proponowanej przez Karsten:

  1. pochodnym TraceListener że rzuca zamiast rejestrowania
  2. dodał, że słuchacz do PresentationTraceSources.DataBindingSource

Patrz: complete solution on GitHub, zawiera aplikację demonstracyjną i projekt testowy urządzenia.

Exception in Visual Studio

Powiązane problemy