Я читал, что в MVVM виртуальная машина не должна ничего знать о представлении, и представление не должно привязываться непосредственно к модели, а должно привязываться к виртуальной машине, которая перенаправляет свойства из модели и манипулирует моделью по мере необходимости.Так что я думаю, что классы модели не должны реализовывать измененный INotifyProperty, поскольку это обрабатывается моделью представления.
Это все нормально, когда есть все, но я не уверен, как организовать вещи, когда есть родительдетские отношения.Скажем, у нас есть объект Order, который имеет свойства (имя клиента, адрес и т. Д.), Которые отображаются в представлении заказа.Таким образом, OrderView связывается с OrderViewModel, который имеет ссылку на объект Order (модель).Каждый объект Order имеет список объектов OrderItem (модель), которые имеют такие свойства, как элемент, общее количество и т. Д.
Теперь OrderView должен отображать список OrderItems (скажем, в GridView) и связываться со свойствомВызываемые элементы в OrderView.Каким должен быть тип этого свойства?Если это List, то out view привязывается непосредственно к объекту модели, что противоречит принципам, которые я упомянул в начале, и наш объект OrderItem действительно реализует INotifyPropertyChanged.Должен ли OrderItem быть «обернутым» в какой-то объект VM, и если да, то как мы должны его назвать - OrderItemViewModel?Я не уверен, что это хорошо подходит, поскольку это не модель представления представления элемента заказа - он просто предоставляет свойства для привязки GridView, и это имя конфликтует с классом OrderItemViewModel, описанным ниже
Теперь давайтескажем, у нас есть OrderItemView, который является UserControl, который является дочерним по отношению к OrderView.Его роль заключается в отображении выбранного в настоящий момент элемента заказа в OrderView.Правильно ли я говорю, что это модель представления должна называться OrderItemViewModel, и она должна иметь ссылку на текущий выбранный порядок, который установлен OrderViewModel, поэтому OrderViewModel знает модель представления OrderItem?