Я обычно использую DependencyProperty
вместо INotifyPropertyChanged
, но идея та же.
Их цель - уведомить элементы управления представления, с которыми они связаны, о том, что они изменились, чтобы представление могло обновляться. Это подразумевает слабую связь между представлением и тем, что содержит свойство или объект. В MVVM представление никогда не должно иметь какой-либо связи с моделью из-за разделения интересов.
У меня часто будет физическая сила, создавая отдельный проект для каждого вида, модели представления и модели. Итак, ответ на ваш вопрос заключается в том, что INotifyPropertyChanged
должен быть реализован на уровне модели представления, потому что представление никогда не должно касаться чего-либо на уровне модели. Сказав это, MVVM - это просто парадигма кодирования, облегчающая работу программистов, поэтому могут быть причины для ее реализации по-другому, если это означает облегчение вашей работы и не имеет никаких негативных последствий.