2013-02-14 67 views
0

我有一對WPF窗口對話框中可以拋出異常的自定義用戶控件。我想要做的是當這些用戶控件之一引發異常時,僅清除該窗口對話框。但是,這些控件處理它們自己的單擊事件,所以我找不到任何地方將它們封裝到窗口內部的try-catch中。WPF Catch異常由窗口內的用戶控件引發

我能想到的唯一可能的解決方法是在我的用戶控件中實現SomethingWentWrong事件,並在我的WPF窗口中訂閱它。然而,在我看來,這似乎是一種非常醜陋的做事方式。

有沒有更好的選擇?

回答

1

在單個Window中沒有全局方法來輕鬆捕獲異常。

您可能會訂閱Application.DispatcherUnhandledException,這會爲您提供一種方法來捕獲在Dispatcher上發生的異常。這將處理大多數典型的用戶界面「事件」,但在應用程序範圍內。

+0

是的,我alrealy知道Application.DispatcherUnhandledException,但它在這種情況下用於我描述的用途,不幸的是。 我想我必須堅持事件解決方法。 雖然有人提出比我更優雅的解決方案,但我會讓問題再開放一段時間。 – Kaz 2013-02-14 16:40:18