C# INotifyDataErrorInfo实体级验证。如何引发验证错误事件?

C# INotifyDataErrorInfo实体级验证。如何引发验证错误事件?,c#,wpf,inotifydataerrorinfo,C#,Wpf,Inotifydataerrorinfo,我有以下问题: 我正在使用INotifyDataErrorInfo验证来验证我的模型。 现在我需要在“实体级别”上验证我的模型,因此应该验证模型对象的整个状态 这一切正常,验证规则返回错误,但我现在如何确保为我的模型引发validation.error事件,以便在主窗口级别捕获它以显示错误消息 对于我的属性,我在xaml中编写了以下内容,以便引发Validation.Error事件: 如果有人能为我提供一个工作的例子,我将非常高兴,谢谢 事件验证。错误是RoutedEvent,并且在绑定中验

我有以下问题:

我正在使用INotifyDataErrorInfo验证来验证我的模型。 现在我需要在“实体级别”上验证我的模型,因此应该验证模型对象的整个状态

这一切正常,验证规则返回错误,但我现在如何确保为我的模型引发validation.error事件,以便在主窗口级别捕获它以显示错误消息

对于我的属性,我在xaml中编写了以下内容,以便引发Validation.Error事件:



如果有人能为我提供一个工作的例子,我将非常高兴,谢谢

事件验证。错误是RoutedEvent,并且在绑定中验证返回false时始终引发该错误

<StackPanel Validation.Error="OnError">
  <TextBox Text="{Binding PropertyName, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True}" />
</StackPanel>

事件验证。错误是RouteEvent,并且在绑定中验证返回false时始终引发它

<StackPanel Validation.Error="OnError">
  <TextBox Text="{Binding PropertyName, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True}" />
</StackPanel>

@忍者刺猬:是的,我知道,但问题是要得到一个模型级错误的事件了

但现在我找到了解决问题的办法


如果要对整个模型执行Validation.Error事件,则必须在父控件上绑定例如DataContext。 下面的例子将解释我的意思:



因此网格上DataContext的绑定现在侦听模型的INotifyDataErrorInfo.ErrorsAnged事件,如果有错误,则验证。错误路由事件get将针对整个模型引发。

@ninja hedgehog:是的,我知道,但问题是也要为模型级错误获取事件

但现在我找到了解决问题的办法


如果要对整个模型执行Validation.Error事件,则必须在父控件上绑定例如DataContext。 下面的例子将解释我的意思:



因此,网格上DataContext的绑定现在侦听模型的INotifyDataErrorInfo.ErrorsAnged事件,如果有错误,则为整个模型引发Validation.error RoutedEvent get。

“整个模型的Validation.error事件”-我不明白。但是,如果您已经解决了问题,那么您就可以开始了:)我尝试获取Validation.Error事件,不是针对模型的单个属性,而是针对模型本身(如IDataErrorInfo.Error属性)。你知道我的意思吗?你可以同时使用IDataErrorInfo和Validation。错误。那么问题是什么?使用IDataErrorInfo验证模型,并使用Validation.Error捕获视图中某个位置的错误。“整个模型的Validation.Error事件”-我不明白。但是,如果您已经解决了问题,那么您就可以开始了:)我尝试获取Validation.Error事件,不是针对模型的单个属性,而是针对模型本身(如IDataErrorInfo.Error属性)。你知道我的意思吗?你可以同时使用IDataErrorInfo和Validation。错误。那么问题是什么?使用IDataErrorInfo验证模型,并使用Validation.Error捕获视图中某个位置的错误。