Рассмотрим некоторую презентацию управления персональной информацией с PimDetailVm, которая принимает объект Person в качестве модели.Презентация будет управлять различными аспектами о человеке (имя, контактные точки, адреса и т. Д.), Что в совокупности приведет к размыванию исходной модели вида.
Поэтому я хочу разделить модели спутникового обзора для каждого.Хотя исходная модель представления по-прежнему несет ответственность за разрешение и принятие обновлений, поэтому, как минимум, ей необходимо знать, верны ли IsDirty и IsValid, и текущее состояние модели.
Cheers,
Berryl
ОБНОВЛЕНИЕ
В моем исходном сообщении слишком много текста (было);может быть, организация этого лучше получит больше ответов и оставит след чего-то полезного, поэтому
Параметры синхронизации между родителями и детьми
- INPC
- Плюсы - ужереализовано VM
- Минусы - срабатывает несколько раз, возможно, должно быть ограничено только для привязки данных
- Посредник
- Плюсы - чистое разделение намерений
- Минусы - не знаете, как реализовать и использовать в общем виде
- Агрегатор событий
- Плюсы - общая абстракция
- Минусы - не знаете, как реализовать и использовать в общем виде
- Событие домена (т. Е. PersonUpdated), и пусть модель будет источником синхронизации
- Плюсы - возможно, это событие принадлежит здесь, упрощает инфраструктуру виртуальных машин
- Минусы - не уверен
- Событие внутри модели (т.е. ViewModelUpdated)
- Плюсы - чище, чем INPC, поскольку он запускает только одинd его намерение ясно
- Минусы - не уверен
- Жесткая ссылка (то есть Parent.Update ())
- Плюсы - намерение ясно,легче отлаживать
- Минусы - жесткая связь
- наследовать от объекта зависимостей
- Плюсы - Понравится
- Минусы- не подлежит повторному использованию, жесткая связь с диспетчером WPF
- наследует виртуальную машину от DynamicObject
- Плюсы - вы можете делать то, что хотите
- Минусы -изменяет структуру ViewModel, сложную для неопытных программистов
- включает АОП с перехватчиком
- Плюсы - делайте что хотите
- Минусы - кривая обучения, не очевидно