我们正在使用MVVM Light开发新的WPF应用程序。我们有一个自定义的ObservableCollection,它以绑定到数据网格开始。根据项目规范,我们必须从显示数据网格的表单开始,然后当用户选择一行时,我们以另一种形式向用户显示详细信息视图。在这一点上,我们得到选定的行并将其分配给我们分配给MVVM Light消息的对象,以便详细视图将能够显示记录的详细信息。使用MVVM Light的消息传递ObservableCollection时,是通过传递的副本还是传递的引用?
现在我们正在进入这个领域,我们遇到了一个复杂问题。规范要求详细信息视图能够浏览集合,尽管此时它没有集合。我们已经完成了,我们可以通过一个接口来完成这个任务,我们定义了我们称之为IRecordService的方法,并为我们使用的每种记录类型实现它。然而,问题在于记录不知道它是否是集合中的第一条记录,也就是最后一条记录等等。由于细节表单上的按钮可以让用户浏览集合,因此这是必要的。我们一直在努力做到这一点,例如CustomerRecordService,但到目前为止还没有解决。如果我们坚持下去,也许会这样。
但我一直在想,如果不是创建一个具有所选记录的对象,而是将其传递到消息中,而是将整个集合和所选记录的关键字传递给消息,然后被详细视图模型捕获?在这种情况下,我的同事首要关心的是ObservableCollection如何通过?传递ObservableCollection的副本还是引用列表viewmodel中的ObservableCollection?我会认为它是一个参考,但是想要确保我是对的,或者不是。
同意这是一个参考。 –