如何解决手动调用DataBindingContext.updateModels会导致UnsupportedOperationException
我正在将RCP应用程序从2015年更新为2018-09(支持32位JVM的最新版本)。
在具有多个节且每个节都有自己的DataBindingConext
(dbc)的托管表单上,我使用主dbc中的AggregateValidationStatus
跟踪所有验证错误和警告消息。
在用户流中的某一时刻,我需要提供所有验证错误和警告消息的列表。当我最初在2015年编写代码时,我想确保所有验证代码在显示给用户之前都已执行,因此我手动调用了masterDbc.updateModels()
。这毫无例外地执行。
现在,手动调用masterDbc.updateModels()
会在返回UnsupportedOperationException
时引起AggregateValidationStatus.calculate()
。请注意,在任意一个dbc上(不仅是主dbc)上手动调用updateModels()
时,都会发生此异常。
两个问题:
谢谢, 蒂莫西
解决方法
该问题的解决方案是将targetToModel UpdateValueStrategy
与POLICY_NEVER
一起传递,以便不尝试更新只读AggregateValidationStatus
。
this.dbc.bindValue(WidgetProperties.text().observe(lblErrMsg),new AggregateValidationStatus(this.dbc,AggregateValidationStatus.MAX_SEVERITY),new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),null);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。