提高验证.没有NotifyOnValidationError的错误.是最低的
本文关键字:错误 NotifyOnValidationError 没有 高验证 验证 | 更新日期: 2023-09-27 18:14:03
可以强制控件引发验证。错误事件,即使绑定没有指定NotifyOnValidationError?
或
是否有另一个事件总是在显示或隐藏红色验证边框时引发?
解释:
我有一个附加的行为,使验证之间的绑定。GetHasError和我的ViewModel的属性。这样做的目的是在视图模型端知道视图端验证何时发生。
示例:一个带有int属性的视图模型class ViewModel
{
int Value { get; set; }
}
文本框:
<TextBox Text="{Binding Value}" Validation.Error="Validation_Handler" />
示例我想知道当用户输入的值不是整数
将所有视图模型属性修改为具有字符串类型并在ViewModel上完成所有验证是不可行的,因为一些ViewModel属性是在运行时动态生成的,并且我想保留默认的转换器行为
从这个问题
最简单的解决方案是继承Binding类,并在构造函数中将NotifyOnValidationError设置为true。这样验证。错误事件总是被触发。public class Binding : System.Data.Binding
{
public Binding(string path) : base(path)
{
NotifyOnValidationError = true;
}
}
和XAML:
<TextBox Text="{ui:Binding Value}" Validation.Error="Validation_Handler" />
代替:
<TextBox Text="{Binding Value, NotifyOnValidationError='True'}" Validation.Error="Validation_Handler" />