在完成一些副手项目之后,我最近的项目使用Caliburn.Micro实现了MVVM模式 - 但我仍然在解决一些架构问题。主要是:
我的ViewModel包含BindableCollection
ProfilesCollection
Profiles
。我的视图有一个添加新配置文件的按钮。但由于配置文件很复杂,我希望按钮单击打开一个新窗口,我可以在其中填写详细信息,然后返回主窗口。
在我之前的手工方法中,我使ProfilesCollection
静态,以便在整个应用程序中可以访问它,并且作为点击事件,我刚刚打开了一个新窗口,然后我将新配置文件存储在静态{ {1}}。
什么是正确的MVVM方法?创建一个新的视图/ viewmodel而不是一个新窗口?如何管理它们,以及如何将我创建的Collection
传递回MainViewModel?
谢谢!
答案 0 :(得分:1)
我首先将ProfilesCollection
传递给ProfilesViewModel
以及ProfilesView
,以便选择要修改的配置文件以及添加/删除配置文件。
其次,我会有一个单独的ProfileViewModel
和ProfileView
。 ProfileViewModel
将使用ShowDialog
方法在ShowDialog
子窗口上调用ProfileView
。这将允许ProfilesViewModel
在ProfileViewModel
上设置配置文件,然后调用ShowDialog
,这将很好地适应MVVM模式。
有关详细信息,请查看Wpf Application Framework。
答案 1 :(得分:0)
您只需打开一个新的对话框/窗口即可填写您的详细信息。看看我的apporach here