我想知道在Caliburn MVVM框架中组织视图模型的最佳方式是什么。
我看到了许多示例,其中视图模型是位于名为ViewModels的文件夹中的简单类,视图位于文件夹views中。
例如,项目有这样的结构:
- WPF app
- ViewModels [Folder]
-ShellViewModel [Class]
-ViewModelA [Class]
-ViewModelB [Class]
-Views [Folder]
-ShellView [Class]
-ViewA [Class]
-ViewB [Class]
在许多情况下,我有一个非常复杂的视图模型。
在我看来,将视图和视图模型放在单个WpfControlLibrary中会很好。
但我不确定这是否是用MVVM设计组织WPF应用程序的好方法。
我认为Caliburn框架在视图模型不是名为ViewModels的文件夹中的类的情况下也能工作。
所以我的问题是,在使用Caliburn框架的WPF应用程序中,组织视图和视图模型的正确方法和下注方式是什么。
如果这是一个新项目,创建者建议使用Caliburn-micro。无论哪种方式,都可以在Views/ViewModels目录中组织它们,或者按Customer之类的函数组织它们。
在hello-screens示例中,它们是按函数组织的,因为每个函数都是要加载的模块。另一个很好的例子是media-owl例子,其中每个模块都在自己的程序集中。
ViewModelLocator和ViewLocator可以配置为解析许多不同结构的ViewModels和视图。