当前位置:  开发笔记 > 编程语言 > 正文

这是一种处理IDataError和WPF的多验证类型的疯狂方法吗?

如何解决《这是一种处理IDataError和WPF的多验证类型的疯狂方法吗?》经验,为你挑选了0个好方法。

我们使用控件的标准方法来报告破坏的BO规则.这是通过我们BO中的接口IDataError和XAML中的控件绑定到BO的属性等来完成的.这种方法可以正常工作.但我们需要在UI中显示两种类型的视觉效果,具体取决于失效错误的类型(或类别,如果您愿意).如果它是必填字段,那么我们会显示一个CueBanner(水印),但对于其他类型,我们会更改控件边框的颜色.在这两种情况下,我们都设置了错误消息的工具类型.

IDataError的问题在于它不支持区分错误类型的方法/属性.

我能做到的唯一方法是检查错误文本,必填字段必须包含关键字"required".以下方法感觉不对,但这是我可以确定错误类型然后相应处理它的唯一方法.所有必填字段规则必须作为错误文本"必填字段"的一部分.为了使这一切工作,我创建了一个名为ErrorMessage的自定义依赖项属性.在我的ResourceDictionary中,我有一个Validation.HasError的Style.Trigger.在那里我将我的依赖属性值设置为ErrorContent.现在,当我的依赖项属性值发生更改时,我可以检查文本并将Validation.SetErrorTemplate(myControl,newErrorTemplate)设置为模板以适应错误类型.我必须将一些事件连接到控件(如丢失)并获得焦点以管理删除或添加cueBanner模板,但整个过程将起作用.只是我不确定这是最好的方法.

PS.当我设置ErrorTemplate时,我在代码中执行此操作,即构建和添加它.有没有办法将Validation.SetErrorTemplate指向静态资源,记住我需要在至少2种类型之间切换?

请你的想法..

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有