我的申请并不复杂.它从Web服务中检索单个实体,对其进行编辑并将其发回.实体本身相当大,有一些协会和几十个属性.把它想象成一个大文件(它实际上是一个文件).
我想过使用多个嵌套视图构建我的应用程序.所以我有一个完整实体的视图和视图模型,但它包含多个视图和各种属性的视图模型.这是一个好方法吗?或者我将来会遇到很多问题?
另外:我如何连接它们?我是否绑定嵌套视图的DataContext的以"实体"("真正的"从域对象)或通过这样来讲话"父"视图模型创建的ViewModels?
我应该使用MVVM Light,Prism还是Caliburn.Micro等MVVM框架?
无论您有一个文档实体视图还是多个文档实体子视图,它们最终都应该共享同一个文档实体。如果这只是一个小型应用程序,那么代表文档实体的单个视图可能是一个不错的方法。
然而,也可以将实体分解为其组成部分。这将使您能够为每个零件创建更易于管理的模型。在这种情况下,您将需要使用发布/订阅模型在实体更新时传递实体,以便在任何其他组件修改该实体时,每个组件部分都会使用最新的实体进行更新。
如果您决定使用子视图,那么 MVVM 框架将使管理变得更容易。也就是说,即使您选择一个大视图,MVVM 框架仍然会为您处理许多基本管道。
我已经使用了您提到的所有三个 MVVM 框架,并建议使用 Caliburn.Micro 或 MVVM Light。Prism 可能有点让人不知所措,并且学习曲线要陡峭得多。
编辑
根据您的附加信息并假设:
然后你可以按照以下方式做一些事情:
ContentControl作为 Shell 中每个用户控件的容器。Shell 的 ViewModel 将负责将各种用户控件注入到每个 ContentControl 中。使用 Caliburn.Micro 还是 MVVM Light 并不重要;它们都为基本管道奠定了良好的基础。选择您感觉最舒服的方式。