Чтобы ответить на вопрос, поставленный в заголовке: ни.
В MVVM, «модель», как правило, все, что другая сторона ViewModel (т.е. между ViewModel и хранилище). Модель может (и обычно состоит) состоять из нескольких различных дополнительных архитектур и шаблонов, нормально иметь сервисы, микросервисы, DAL и DIL, модели домена, POCOs/объекты данных и т. Д. Все в рамках «модели».
объекты домена и POCO которые вы говорите, не модель, они часть модель. Перспектива модели, о которой вы говорите, была перенесена из других шаблонов, таких как MVC, где объект данных или объект домена действительно является моделью. Модель немного сложнее, чем в MVVM.
Вы можете связать напрямую с POCO в MVVM, но это не всегда хорошая идея, если она не очень простая, которая не подлежит изменению (например, список поиска, полученный из репозитория). И, как правило, довольно плохая идея связываться с объектами домена, поскольку они будут содержать дополнительные функциональные возможности или информацию, связанную с хранением и извлечением, но это избыток для всего, что показано в пользовательском интерфейсе. Другая проблема с объектами домена заключается в том, что они обычно не сериализуются красиво (если вообще - часто генерируются объекты домена), поэтому, если у вас нет очень простой модели, лучше всего сразу превратить объекты домена в POCOs.
Так, как указано в answer from Owen, вы должны обернуть свои POCOs классами viewmodel, прежде чем они станут доступными для пользовательского интерфейса.Единственный раз, когда вам не нужно, - это когда вам не нужны какие-либо уведомления об изменении свойств, и вы также не хотите использовать какие-либо дополнительные функции для объектов (например, вам не понадобится контекстное меню для отображаемого элемента).
Но это то, что DM никогда не будет реализовывать 'inotifypropertychanged'. Поэтому правильнее сказать, что VM * wraps * (Domain) Model, да? –
Если вы используете фреймворк сущности, созданный им Poco для реализации DOM-метода inotify. Даже VM обертывает DM, основные свойства DM должны внедрять inotify – Krishna