Mvvm 如何:多屏幕/区域Silverlight应用程序?

Mvvm 如何:多屏幕/区域Silverlight应用程序?,mvvm,silverlight-4.0,prism,ria,lob,Mvvm,Silverlight 4.0,Prism,Ria,Lob,我现在必须用MVVM创建一个多屏幕Silverlight 4 RIA应用程序 这些屏幕中的每一个都必须划分为多个区域(例如,主细节场景,而每个屏幕都是不同的部分,一个屏幕控制另一个屏幕) 您能给我一些想法吗?实现这样一个应用程序的正确方法应该是什么? 棱镜是正确的选择吗?我开始阅读Prism手册,非常喜欢以一种非常灵活的方式切换区域和屏幕以及控制的想法,但是,如上所述,我发现将其拆分到多个组件上太过分了 如果Prism是一个正确的选择,那么我将非常感谢任何关于这个特定场景的指导或参考(多个屏幕和

我现在必须用MVVM创建一个多屏幕Silverlight 4 RIA应用程序

这些屏幕中的每一个都必须划分为多个区域(例如,主细节场景,而每个屏幕都是不同的部分,一个屏幕控制另一个屏幕)

您能给我一些想法吗?实现这样一个应用程序的正确方法应该是什么?
棱镜是正确的选择吗?我开始阅读Prism手册,非常喜欢以一种非常灵活的方式切换区域和屏幕以及控制的想法,但是,如上所述,我发现将其拆分到多个组件上太过分了


如果Prism是一个正确的选择,那么我将非常感谢任何关于这个特定场景的指导或参考(多个屏幕和区域,OTOH无法通过无数项目发现我的解决方案。

我认为PRISM是构建具有多个区域和视图的应用程序的正确选择。你可能会认为这几乎就是复合应用程序的定义

<>但是我还记得,你不必使用棱镜的所有组件,你可以选择。我建议你考虑棱镜和测试/原型的各个方面,以确保你对所提供的设备感到满意。在我使用的一个大应用中,我使用棱镜,但是在一些原型研究之后,我只使用EvestGrGe。gator和模块化功能

我选择不使用区域支持,因为我发现在Silverlight中使用ItemControl和ContentControl组件使我能够将视图和部分视图注入到界面中

我发现ASP.NET MVC的经验在考虑如何协调/将UI分解为部分视图时非常有用


希望对您有所帮助。Stocktrader应用程序是一个很好的学习示例(包含在PRISM distributable中)。

@Rus,谢谢您的回答。Stocktrader应用程序使用分布在不同程序集中的区域,我希望将所有区域都包含在一个程序集中(即,我希望至少在一个程序集中包含所有ViewModels)@Shimmy,你可以在StockTrader中使用区域方法,但如果你愿意,可以将所有视图和视图模型放在一个项目/名称空间/程序集中。StockTrader应用程序正试图尽可能多地演示PRISM,但你可以随心所欲地使用自己的方法。@Rus,问题是我想切换多个屏幕,让它看起来更像一个非常不同,这不是在替换
Shell
s吗?这是怎么做到的?你能给我介绍一篇关于这方面的好文章吗,即嵌入视图和维护屏幕工作流吗?@Shimmy,你问了几个问题,我将分别尝试每一个问题。我所做的是有一个Shell,可以显示不同的工作空间。Workspaces可以根据需要以不同的方式显示子视图。为了维护工作流,我倾向于使用一个通用的视图模型来协调工作流中的不同视图。@Rus,这就是我想听到的,请更具体地说明您所称的“工作区”。