Правильное имя свойства для вложенного свойства и INotifyDataErrorInfo

Я использую интерфейс INotifyDataError для асинхронной проверки в WPF. У меня есть собственность

<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)) каким должно быть свойство name. Обратите внимание, что мой обязательный путь XXX.Name, Свойство propertyName должно быть

  • XXX.Name
  • название

или что-то еще, или я должен реализовать INotifyDataErrorInfo в моем SomeType класс, который я надеялся не делать, так как я хочу, чтобы моя проверка оставалась в модели основного вида.

В любом случае, я пробовал оба выше и текстовое поле не получает красный квадрат вокруг него, хотя я могу убедиться, что событие ошибки возникает.

1 ответ

Решение

afaik я бы сказал, что вы должны реализовать IDataErrorInfo для своего свойства XXX в вашем классе SomeType, потому что вы привязываетесь к нему. Я делаю это в своих проектах, и это работает.

Другие вопросы по тегам