Доброго времени суток.
Как и во многих случаях, при использовании паттерна MVVM часть VM просто дублирует Model. Дублирование происходит процентов на 90. Я хотел бы временно избавиться от полного дублирования, но и чтобы связь VM и M оставалась такой же обособленной.

Сверху то, как есть сейчас. При обновлении Model(не со стороны VM) вызывается событие обновление модели, по которому VM сообщает что стоит обновить во View(кажется называется DomainEvent)
Но происходит куча дублирования свойств(и логики Model, что важнее и проблемнее).
Решение:
Унаследовать Model и переопределить обновляемые свойства.
В итоге вся логика Model будет записана в base. Мне же надо просто вызвать OnModelCreated();
Переопределяемому свойства я могу задать с помощью атрибутов имя во View(для связи) или в передаче методу OnModelCreated();
Вопроc: чем чревато подобная логика для приложения, которому может сильно разростись? Таким образом все круто: View не знает ничего об M, VM знает все об M, M ничего не знает об VM.
Вопрос 2: насколько это соотвествует паттерну?(все условности, что паттерн не догма я понимаю)
UPD 2:
Примерное описание работы программы в Update 2 вопроса: Синхронизация Model и ViewModel, когда приложение - Client
То, что я описал в вопросе(пример решения) - это пример лайфхака - "Как упростить себе жизнь сейчас, но сильно не усложнять ее в будущем". Если VM сущность будет сильно отличаться, то мне просто нужно будет убрать наследование.
– Arantler Nov 22 '17 at 10:35В итоге логика, написанная в Model, должна быть переписана в VM под другие типы(под типы в VM).
Реализация одного интерфейса - практически сработает, но с точки зрения MVVM ложится не очень(все же Model знает об интерфейса VM).
– Arantler Nov 22 '17 at 11:36