MVVM,使用新的Windows或Views?

时间:2012-10-26 13:59:24

标签: c# wpf mvvm caliburn.micro

在完成一些副手项目之后,我最近的项目使用Caliburn.Micro实现了MVVM模式 - 但我仍然在解决一些架构问题。主要是:

我的ViewModel包含BindableCollection ProfilesCollection Profiles。我的视图有一个添加新配置文件的按钮。但由于配置文件很复杂,我希望按钮单击打开一个新窗口,我可以在其中填写详细信息,然后返回主窗口。

在我之前的手工方法中,我使ProfilesCollection静态,以便在整个应用程序中可以访问它,并且作为点击事件,我刚刚打开了一个新窗口,然后我将新配置文件存储在静态{ {1}}。

什么是正确的MVVM方法?创建一个新的视图/ viewmodel而不是一个新窗口?如何管理它们,以及如何将我创建的Collection传递回MainViewModel?

谢谢!

2 个答案:

答案 0 :(得分:1)

我首先将ProfilesCollection传递给ProfilesViewModel以及ProfilesView,以便选择要修改的配置文件以及添加/删除配置文件。

其次,我会有一个单独的ProfileViewModelProfileViewProfileViewModel将使用ShowDialog方法在ShowDialog子窗口上调用ProfileView。这将允许ProfilesViewModelProfileViewModel上设置配置文件,然后调用ShowDialog,这将很好地适应MVVM模式。

有关详细信息,请查看Wpf Application Framework

答案 1 :(得分:0)

您只需打开一个新的对话框/窗口即可填写您的详细信息。看看我的apporach here