WPF 单独的错误和警告样式

2024-01-03

我们如何以与错误类似的方式向用户显示警告。唯一的区别是控制例如TextBox 需要有一个不同的错误模板,并且与 Validation.HasError 类似,需要有一个 Validation.HasWarning。

换句话说,并非所有验证问题都是“错误”(至少在我们的应用程序中)。我们希望直观地表明某些内容是警告还是错误。


有时我需要中间立场。喜欢Command需要 3 个值CanExecute而不是true or false.

至于像验证一样操作的警告,我不知道需要将所有部分放在一起,但我想我知道如何开始。

您需要依赖附加属性和附加行为(订阅对象上的事件并在事件触发时执行与这些事件相关的操作的附加属性)。您可能有一个管理一组ValidationRule用于确定是否发出警告的对象,很像Validation属性确实如此。你可能有一个叫做HasWarning通过可以在样式/模板触发器中引用的验证来设置或取消设置。

您可以将警告显示作为每个控件模板的一部分,或者您可以再次模仿Validation并有一个WarningTemplate附加属性,用于将警告信息放置在AdornerLayer.


自定制以来ValidationRule对象返回一个ValidationResult对象,其中ErrorContent只是一个对象,并且这个对象也暴露在ValidationError对象作为ErrorContent,毕竟您也许还可以使用常规验证。你可以使用一个类作为你的ErrorContent对象有一个ErrorType警告或错误的属性并绑定到您的ErrorTemplate.

我不确定是否有ValidationErrors 的存在会阻止您希望允许的某些操作(例如按下按钮),但是可以在 ViewModel 上创建某种代理来判断ErrorType.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 单独的错误和警告样式 的相关文章

随机推荐