更正嵌套属性和INotifyDataErrorInfo的属性名称

时间:2013-10-16 11:15:21

标签: wpf validation binding inotifydataerrorinfo

我在WPF中使用INotifyDataError接口进行异步验证。我有一个属性

<TextBox Grid.Column="5" 
         Text="{Binding XXX.Name, ValidatesOnNotifyDataErrors=True}"/>

在我的视图模型中,我有一个属性

public SomeType XXX

并且类型SomeType我有属性

public string Name

现在我的ViewModel实现了INotifyPropertyChanged和INotifyDataError,并且在我的viewmodel类中异步完成了验证。 SomeType仅实现INotifyPropertyChanged。

我的问题是这样的。当我使用ErrorsChanged引发DataErrorsChangedEventArgs(propertyName))事件时,propertyName应该是什么。请注意我的绑定路径是XXX.Name。应该是propertyName

  • XXX.Name
  • 名称

或其他什么或我是否必须在我的SomeType类中实现INotifyDataErrorInfo,我希望不必这样做,因为我希望我的验证保留在主视图模型中。

无论如何,我已经尝试了上面的两个文本框并没有得到一个红色框,虽然我可以验证错误事件是否被提出。

1 个答案:

答案 0 :(得分:3)

afaik我会说你必须在你的SomeType类中为你的属性XXX实现IDataErrorInfo,因为你绑定它。我在我的项目中这样做并且有效。