WPF单独的错误和警告样式

时间:2010-02-19 14:06:24

标签: wpf validation styles

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

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

1 个答案:

答案 0 :(得分:3)

我有时需要这个中间立场。与需要Command而不是CanExecutetrue的3个值的false类似。

对于像验证这样运作的警告,我不知道需要整理的所有部分,但我想我知道如何开始。

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

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


由于自定义ValidationRule对象返回ValidationResult对象,其中ErrorContent只是一个对象,并且此对象也在ValidationError对象中公开为{{1毕竟,你也可以使用常规验证。您可以将一个类用作ErrorContent对象,其ErrorContent属性为Warning或Error,并绑定到ErrorType中的<。<}组。

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