我正在尝试使用WPF和MVVM模式构建应用程序。我有我的视图通过数据绑定从我的视图模型中填充。我希望有一个集中处理所有在应用程序中发生的异常的地方,这样我可以适当地通知用户并记录错误。
我知道Dispatcher.UnhandledException,但是它不起作用,因为在数据绑定期间引发的异常被记录到输出窗口中。因为我的视图绑定到我的视图模型,所以整个应用程序基本上是通过数据绑定控制的,因此我没有办法记录我的错误。
是否有一种通用的方式来处理数据绑定期间引发的异常,而无需在所有我的ViewModel公共方法周围放置try块?
示例视图:
我知道Dispatcher.UnhandledException,但是它不起作用,因为在数据绑定期间引发的异常被记录到输出窗口中。因为我的视图绑定到我的视图模型,所以整个应用程序基本上是通过数据绑定控制的,因此我没有办法记录我的错误。
是否有一种通用的方式来处理数据绑定期间引发的异常,而无需在所有我的ViewModel公共方法周围放置try块?
示例视图:
<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(); }
}
}
这是一个内部应用程序,因此我不想使用之前推荐的Wer。