Try
{
// Data Binding
}
Catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
如果In Data绑定中有任何错误,为什么.Net不会抛出任何异常? 这个设计背后的原因是什么?
答案 0 :(得分:0)
WPF不是在数据绑定时引发异常,而是为控件提供拦截和响应数据绑定问题的机会。
例如,绑定到文本属性的数字向上向下控件可以在自身周围绘制一个红色框,或者显示一个消息框以响应错误的绑定或验证错误。
有关详情,请查看此博客文章:Displaying Data Validation Messages in WPF
答案 1 :(得分:0)
数据绑定代码深入WPF&它是自动的。您不会进行任何更新数据绑定的调用。您的代码通过INotifyPropertyChanged
接口通知WPF绑定属性值的更改并更新绑定。
但您也可以将UI控件绑定到不实现INotifyPropertyChanged
的属性。在这种情况下,您无法在代码中的任何位置进行调用以捕获异常。
答案 2 :(得分:0)
除了其他人在这里所说的内容之外,WPF还向我们提供了PresentationTraceSources
class,我们可以使用它来向我们提供与数据绑定(和其他领域)相关的各种级别的反馈。您可以通过查看链接页面和MSDN上的How to: Display WPF Trace Information页面了解如何利用WPF跟踪功能。
或者,错误信息也会直接输出到Visual Studio的输出窗口中,因此您仍然可以找到出错的地方,尽管在不同的地方查看。
WPF不会抛出数据绑定Exception
的真正的原因可能只为开发团队所知......我不认为知道实际的原因会以任何方式帮助您。相反,了解它的工作原理以及如何正确处理错误会更好。