我在 WPF 窗口对话框中有几个自定义用户控件,它们可以引发异常。我想要做的是在这些用户控件之一引发异常时仅清除该窗口对话框。但是,这些控件处理它们自己的点击事件,所以我找不到任何地方可以从窗口本身将它们包装到 try-catch 中。
我能想到的唯一可能的解决方法是在我的用户控件中实现一个事件 SomethingWentWrong,并在我的 WPF 窗口中订阅它。但是,在我看来,这似乎是一种非常丑陋的做事方式。
有没有更好的选择?
我在 WPF 窗口对话框中有几个自定义用户控件,它们可以引发异常。我想要做的是在这些用户控件之一引发异常时仅清除该窗口对话框。但是,这些控件处理它们自己的点击事件,所以我找不到任何地方可以从窗口本身将它们包装到 try-catch 中。
我能想到的唯一可能的解决方法是在我的用户控件中实现一个事件 SomethingWentWrong,并在我的 WPF 窗口中订阅它。但是,在我看来,这似乎是一种非常丑陋的做事方式。
有没有更好的选择?
没有全局方法可以轻松地在单个Window
.
您可以潜在地订阅Application.DispatcherUnhandledException
,这将为您提供一种捕获发生在Dispatcher
. 这将处理最典型的用户界面“事件”,但在应用程序范围内。