gpt4 book ai didi

wpf - 这是用 IDataError 和 WPF 处理多种验证类型的疯狂方式吗?

转载 作者:行者123 更新时间:2023-12-04 16:07:27 24 4
gpt4 key购买 nike

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

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

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

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

请你的想法..

最佳答案

是否有可能派生一个接口(interface) IDataError 来添加一个额外的属性,该属性是错误类型的枚举。然后你可以尝试绑定(bind)它。

关于wpf - 这是用 IDataError 和 WPF 处理多种验证类型的疯狂方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com