为什么我的UserControl的ErrorTemplate仍然可见,并且没有错误,却引发ErrorsChanged?

您好,谢谢您的帮助。

我对添加到我的UserControl之一的行为有一些副作用,但遇到了麻烦。我有一个UserControl,它根据依赖项属性在ComboBox中加载一些数据。这项工作效果很好,但最近有人要求我选择是否只有一个项目可以自动选择它。

一旦控件引发Loaded事件,我就会处理这些项目,然后根据需要设置SelectedItem。

UserControl具有SelectedItem依赖项属性,在该属性上,我将属性与NotifyOnDataError绑定为true。

该属性在修改后会触发HasChanges和GetErrors(string)的预期行为触发PropertyChanged和ErrorsChanged。

在某些情况下,尽管属性没有错误并且显示错误的工具提示为空,但错误修饰符仍然保持不变。发生此问题时,我必须清除SelectItem,将属性设置为error,这将导致错误装饰器像这次应该那样保留,但是工具提示这次应该在哪里显示没有错误,然后从组合框中选择一个项目。 。然后,控件验证的行为就会像预期的那样。

在某些情况下,我说过,因为如果AdornerDecorator位于父ContentControl(Window,GroupBox ...)与UserControl之间,则错误模板的行为将与预期的一样。在ContentControl的模板中使用AdornerDecorator不能解决问题。

我在其中复制了问题的地方部署了github repo

Here is my ViewModels implementations.

And here is my UserControl implementation.

我正在寻找我做错了什么,或者至少是一种使它能够持续工作而不必在各处添加AdornerDecorator的方法。

violawu 回答:为什么我的UserControl的ErrorTemplate仍然可见,并且没有错误,却引发ErrorsChanged?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3159103.html

大家都在问