假设我有一个模型,它为我提供了一个属性,即自定义对象列表。该模型是一个单例,我将此属性的引用提供给 ViewModel。这些自定义对象具有例如布尔属性。现在,用户通过单击视图并操作模型中的参考来更改这些值。因此,我的模型中的列表不会改变,因此模型无法通知其他视图,除非我为每个列表成员实现事件处理。
另一方面,如果我分配了一个完整的新列表,我的模型会通知其他人。
问题是:处理我的模型的引用通常是个好主意,还是每个 ViewModel 都应该对列表内容进行深层复制,然后为模型分配一个完整的新列表。如果不是,我应该为模型中列表的每个成员添加事件处理吗?
顺便提一句。ObservableCollection 不是选项,因为它不会检测项目更改,我认为一般模型应该使用 Ilist 接口。