Реализация INotifyDataErrorInfo для ObservableCollection объектов

контекст

Я разрабатываю приложение WPF с использованием MVVM и Entity Framework (сначала база данных). У меня есть ObservableCollection объектов Airframe (просматривается через CollectionView, чтобы я мог обрабатывать следующую / предыдущую логику). У меня есть текстовое поле, которое позволяет редактировать одно из свойств планера для текущего просматриваемого планера, и в настоящее время я настраиваю проверку для этого. Подход, который я использую, заключается в реализации INotifyDataErrorInfo, используя пример, показанный в WPF 4.5: Проверка данных при использовании интерфейса INotifyDataErrorInfo.

вопрос

В примере из этой статьи проверка запускается через установщик отдельного свойства, определенного в ViewModel, например:

private string _username;
public string Username
{
    get { return _username; }
    set
    {
        _username = value;
        ValidateUsername(_username);
    }
}

Вопрос

Как я могу запустить проверку в моем конкретном контексте? Поскольку я использую Entity Framework (сначала базу данных), я не могу возиться с установщиками в сгенерированной модели Airframe. Я не могу понять, как получить детальный доступ для изменения сеттера в объектах ObservableCollection объектов Airframe. Также я не могу думать о каком-либо другом месте, из которого может быть запущена проверка.

1 ответ

Вы можете внедрить поддержку INPC для вашей модели планера, используя

https://github.com/Fody/PropertyChanged

using PropertyChanged;

[ImplementPropertyChanged]
public partial class AirFrame
{
}

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

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