Разница довольно проста.
Модель содержит бизнес-логику.
Модель представления содержит логику представления и имеет дополнительную форму для соответствия представлениям.
В вашем случае - модель представления реализует INotifyPropertyChanged
.Это чистая логика представления.
Модель не отвечает за уведомление одного конкретного пользовательского интерфейса о том, что что-то изменилось, она отвечает за передачу счетов, расчет заработной платы и т. Д.
Иногда (когда модель проста) эта абстракцияхотя в этом нет необходимости.
Некоторые вики цитаты:
Модель : как и в классическом паттерне MVC, модель относится либо к
(a) объектная модель, которая представляет контент реального состояния (объектно-ориентированный подход), или
(b) уровень доступа к данным, который представляет этот контент (подход, ориентированный на данные).
ViewModel : ViewModel - это «модель представления», то есть абстракция представления , которая также служит для привязки данных между представлением и моделью.Это можно рассматривать как специализированный аспект того, что будет контроллером (в шаблоне MVC), который действует как механизм связывания / преобразования данных, который изменяет информацию о модели в информацию о представлении и передает команды из представления в модель.ViewModel предоставляет общедоступные свойства, команды и абстракции.ViewModel уподоблен концептуальному состоянию данных, а не реальному состоянию данных в модели .