У меня есть тяжелое приложение базы данных CRUD. Я хочу иметь возможность последовательно отображать сложные результаты перекрестной проверки свойств.
Это привело меня к подходу, при котором у меня были полностью стандартные модели, не реализованные в INotifyPropertyChanged. И ViewModels, обертывающие их, реализующие INotifyPropertyChanged и INotifyDataErrorInfo.
Я должен использовать оболочку, потому что, если я помещаю логику в модель, это приводит к безумным временам инициации. Мне часто нужен быстрый список клиентов для поиска, списков и т. Д.
Это работает очень хорошо, но требует огромного количества стандартного кода. Все мои модели, думаю предложение или клиент, имеют 20-50 свойств. Все они имеют соответствующую оболочку viewmodel с таким же количеством свойств.
Пример свойства ONE viewmodel выглядит следующим образом.
[OptionalAttribute(Name="differentName")]
public property amount {
get => GetProperty(() => amount);
set {
SetProperty(() => amount, value);
Model.amount = amount;
ValidateAndFire(Model);
}
Мне интересно, есть ли другаяподход? Я совсем не ненавижу это, это работает хорошо, но прежде чем я сделаю это для остальной части проекта, я хотел бы изучить другие варианты.