Wpf 正在传播绑定期间发生的异常

Wpf 正在传播绑定期间发生的异常,wpf,data-binding,Wpf,Data Binding,我需要让数据绑定期间发生的异常冒泡起来,而不是被WPF吞没。通常这个错误会出现在输出中,这就足够了,但在我的情况下,我需要让它冒泡 我的财产定义如下: public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); } } public static readonly De

我需要让数据绑定期间发生的异常冒泡起来,而不是被WPF吞没。通常这个错误会出现在输出中,这就足够了,但在我的情况下,我需要让它冒泡

我的财产定义如下:

public string Text
{
    get
    {
        return (string)GetValue(TextProperty);
    }
    set
    {
        SetValue(TextProperty, value);
    }
}
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(nameof(Text), typeof(string), typeof(EntitySearch), new PropertyMetadata(string.Empty, TextChangedCallback));

public static void TextChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if (DesignerProperties.GetIsInDesignMode(d))
        return;

    if (d is EntitySearch es)
    {
        es.m_key = e.NewValue;
        object obj = es.m_context.Set(es.m_entityType).Find(e.NewValue);
        if (obj.IsEmpty())
            throw new Exception("Entity with this key does not exist.");
        es.SelectedObject = obj;
    }
}
这是输入控件的常用文本属性,但在我的示例中,此值用作从数据库获取内容的键。正如你们所看到的,我想在这里抛出一个异常,让这个异常冒泡起来。最终,堆栈上的某个人将处理异常并将其显示给用户

有什么建议吗


我想指出,如果可能的话,我希望保留抛出异常的概念,而不是将某些属性设置为false,然后再以某种MVVM方式处理此属性。

可能的重复:它不是重复的。在这个问题中,答案将使所有绑定错误成为运行时错误,在我的问题中,我只需要一个属性来传播异常,而不是吞并异常。抱歉,我无意通过它提出任何建议。我只是相信你可以从这个答案中找到解决问题的方法。可能的重复:它不是重复的。在这个问题中,答案将使所有绑定错误成为运行时错误,在我的问题中,我只需要一个属性来传播异常,而不是吞并异常。抱歉,我无意通过它提出任何建议。我只是相信你可以从这个答案中找到解决问题的办法。