Я пытаюсь создать приложение, используя WPF и шаблон MVVM. Мои представления заполняются из моей ViewModel исключительно через привязку данных. Я хочу иметь центральное место для обработки всех исключений, которые происходят в моем приложении, чтобы я мог уведомить пользователя и зарегистрировать ошибку соответствующим образом.
Я знаю о Dispatcher.UnhandledException, но это не делает работу, так как исключения, возникающие во время привязки данных, регистрируются в окнах вывода. Поскольку мой View связан с моей ViewModel, все приложение в значительной степени контролируется с помощью привязки данных, поэтому я не могу регистрировать свои ошибки.
Есть ли способ общей обработки исключений, возникающих при привязке данных, без необходимости помещать блоки try вокруг всей моей общедоступной ViewModel?
Пример просмотра:
<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>
ViewModel:
public class TestViewModel
{
public bool DisplayLabel
{
get { throw new NotImplementedException(); }
}
}
Это внутреннее приложение, поэтому я не хочу использовать Wer, как я видел ранее рекомендованным.