Правильное имя свойства для вложенного свойства и 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, потому что вы привязываетесь к нему. Я делаю это в своих проектах, и это работает.