Подтвердить что ты не робот

Должен ли вид View косвенно ссылаться на свойства в модели в MVVM?

Скажем, у меня есть представление. Он DataContext привязан к ViewModel, а ViewModel предоставляет свойство Model.

  • Может ли MVVM связать поля в View с свойствами в Model (например, Binding Path=Model.FirstName)?
  • Если Model реализует INotifyPropertyChanged?

Моя команда использует Prism и MVVM в WPF. Многие примеры Prism косвенно связаны с Model. Я лично сомневаюсь, что это правильный подход. Я думаю, что материал в модели должен выставлять поведение (не только на уровне свойства) и должен сообщать важные события by, er, event - что клиенты могут подписаться или нет.

Я думаю, что, если объекты домена/модели реализуют INotifyPropertyChanged, как-то говорит миру, что он UI/UX знает и вводит некоторую избыточность в ViewModel s.

Как вы думаете? Что работает для вас? Четкое различие между View/ViewModel/Model или гибридом, используемым примерами Призмы?

4b9b3361

Ответ 1

Я видел, как многие люди внедряли INotifyPropertyChanged прямо в свои Model, и я также видел, как люди делали это в ViewModel.

Я предпочитаю и делаю это (реализуем INotifyPropertyChanged) в ViewModel. Я согласен с вами, что иногда создает избыточность в ViewModel, но я предпочитаю четкое разграничение/разделение между ViewModel и Model и какова их цель. Мне Model просто буквально Model. Это просто представление моего Business Data не более того. Для меня это не должно вызывать никаких изменений в View (через уведомление об изменении свойства события). View должен разговаривать с ViewModel, а ViewModel должен использовать Model. Мне не нравится View, непосредственно влияющий на Model. Мне не нравится использовать Model.FirstName, потому что мне кажется, что он идет против MMVM, сообщая View, что находится в Model