这是我的风景:在MainPage中我显示了一个详细信息列表。所以我创建了一些DetailViewModel,它们在ObservableCollection中的MainViewModel中进行组织。
我想通过单击“详细信息”列表中的一个项来打开DetailPage。所以我导航到DetailPage。现在我想使用已经存在的DetailViewModel(只需单击)绑定到DetailPage。我不知道该怎么做 - 虽然这种情况很常见。使用默认MVVM Light创建了一个新的DetailViewModel实例。
可能我只是错过了一些东西......
由于
汉斯 - 彼得
答案 0 :(得分:0)
简而言之,请更改您的设置
ViewModel
收集要显示的所有Models
(包含数据),但不包含数据本身。因此,在您的情况下,DetailViewModel
应该只在您的应用程序中存在一次,但它可能包含DetailModel
,其中包含您要显示的实际数据。
构建后,您可以使用Messenger
将DetailModel
中的所选MainViewModel
传递给DetailViewModel
,或者创建SelectDetailModel(DetailModel model)
方法您选择新DetailViewModel
后设置的DetailModel
SimpleIoc.Default.GetInstance<DetailViewModel>().SelectDetailModel(model);