数据绑定的WPF复选框在设置值时出现异常。

3
我有一个数据绑定的WPF复选框控件,当在UI中切换值时,它似乎会吞噬属性设置器抛出的异常。我知道如果在Binding实例上提供ExceptionValidationRule,就会发生这种情况,但我已经仔细检查了Binding实例的ValidationRules,其计数为零。我还检查了中间异常处理程序的调用堆栈,但没有发现任何存在。尽管如此,所抛出的异常并没有冒泡到顶层,并产生像我期望的那样的应用程序崩溃。
如果我从同一UI中的按钮单击处理程序中抛出异常,则异常确实会向上冒泡并导致应用程序崩溃,排除了某种全局异常处理程序。
有什么想法吗?
谢谢!
2个回答

3
补充itowlson的回答,Binding类提供了UpdateSourceExceptionFilter属性,允许您在更新源时发生异常时提供逻辑。 它与ExceptionValidationRule类一起使用,并允许您在更新失败时执行添加ValidationError之外的其他操作。

2
不,这是预期行为:WPF数据绑定基础结构会捕获由于将值从绑定目标保存回源时引起的异常。我怀疑这是因为应用程序无法在保存操作周围设置异常处理程序(因为它是从WPF代码而不是应用程序代码调用的),因此如果WPF不这样做,应用程序将崩溃而没有机会处理异常。
(相比之下,在按钮单击处理程序中,您编写代码,因此您有机会处理异常。因此,如果您决定不处理它,则WPF认为让异常传播是可以的。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接