3
我正在尝试使用WPF和MVVM模式构建应用程序。我的视图是纯粹通过数据绑定从ViewModel填充的。我希望有一个中心位置来处理发生在我的应用程序中的所有异常,以便我可以通知用户并适当地记录错误。处理WPF和MVVM的异常
我知道Dispatcher.UnhandledException,但是这不会做作为数据绑定期间发生的异常记录到输出窗口的工作。因为我的View是绑定到我的ViewModel的,所以整个应用程序几乎都通过数据绑定来控制,所以我没有办法记录我的错误。
有没有办法一般地处理在数据绑定期间引发的异常,而不必在我的所有ViewModel公共模块上放置try块?
示例View:
<Window x:Class="Test.TestView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TestView" Height="600" Width="800"
WindowStartupLocation="CenterScreen">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>
<StackPanel VerticalAlignment="Center">
<Label Visibility="{Binding DisplayLabel, Converter={StaticResource BooleanToVisibilityConverter}}">My Label</Label>
</StackPanel>
</Window>
视图模型:
public class TestViewModel
{
public bool DisplayLabel
{
get { throw new NotImplementedException(); }
}
}
这是一个内部应用程序,所以我不想用疫情周报,因为我已经看到了以前推荐。
请参阅此问题和答案:http://stackoverflow.com/questions/2171580/exceptions-are-swallowed-in-my-wpf-application-how-to-force-application-to-crash – 2010-02-28 21:41:45