Wpf 正在传播绑定期间发生的异常
我需要让数据绑定期间发生的异常冒泡起来,而不是被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
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方式处理此属性。可能的重复:它不是重复的。在这个问题中,答案将使所有绑定错误成为运行时错误,在我的问题中,我只需要一个属性来传播异常,而不是吞并异常。抱歉,我无意通过它提出任何建议。我只是相信你可以从这个答案中找到解决问题的方法。可能的重复:它不是重复的。在这个问题中,答案将使所有绑定错误成为运行时错误,在我的问题中,我只需要一个属性来传播异常,而不是吞并异常。抱歉,我无意通过它提出任何建议。我只是相信你可以从这个答案中找到解决问题的办法。