我的模型由一个主对象组成,用户可以向其中添加各种其他对象。添加的对象存储在主对象及其关联子对象中包含的
因此,如果项目是一座房屋,则用户可以向房屋添加多个
问题是如何在 MVVM 方法中实现这一点?当用户添加新对象时,我是否应该将其添加到 ViewModel 中的
在我的示例中,我有各种编辑器(每个都是用户控件)。因此,用户可以使用一个编辑器高级别地编辑房屋,添加、编辑和删除房间。在较低级别上,使用不同的编辑器编辑每个房间,添加和删除
因此,当用户“编辑”一个房间时。我会生成一个包含该
在每个命令中,最好像上面那样同步模型和 ModelView 中的数据。还是将更改直接推送到模型中,并且 ViewModel 仅在注入的模型属性上提供 getter。但是,这种方式将对象添加到模型列表中不会更新视图。我真的必须同时将数据添加到 ModelView 和 Model 中,以便一切处于相同状态。
对于冗长的陈述,很抱歉,我很难找到一个好的方法来解决这个问题,请问是否有人理解我的意思?
List<object>
中。因此,如果项目是一座房屋,则用户可以向房屋添加多个
Room
对象,这些对象存储在 List<Room> RoomList
中。然后,每个 Room
可以添加多个 Furnishings
,同样存储在每个 Room 的 List<Furnishing> FurnishingsList
中。问题是如何在 MVVM 方法中实现这一点?当用户添加新对象时,我是否应该将其添加到 ViewModel 中的
ObservableCollection
中,以便更新视图,并同时将其添加到连接到 VM 的模型中?还是将其存储在 VM 中,直到保存或提交命令,然后将其传递给模型?在我的示例中,我有各种编辑器(每个都是用户控件)。因此,用户可以使用一个编辑器高级别地编辑房屋,添加、编辑和删除房间。在较低级别上,使用不同的编辑器编辑每个房间,添加和删除
Furnishings
。因此,当用户“编辑”一个房间时。我会生成一个包含该
Room
的 EditRoomModelView
。用户可以在其中添加、编辑和操纵该房间的家具。在每个命令中,最好像上面那样同步模型和 ModelView 中的数据。还是将更改直接推送到模型中,并且 ViewModel 仅在注入的模型属性上提供 getter。但是,这种方式将对象添加到模型列表中不会更新视图。我真的必须同时将数据添加到 ModelView 和 Model 中,以便一切处于相同状态。
对于冗长的陈述,很抱歉,我很难找到一个好的方法来解决这个问题,请问是否有人理解我的意思?
List<object>
中时,如何刷新VM的ObservableCollection以表示List<object>
?服务层是否重新实例化ObservableCollection以反映更改? - Cadair Idris