Реализация 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, и используйте его в качестве триггера для принудительной проверки.