设为首页 收藏本站
查看: 873|回复: 0

Prism学习(6)---Shell Region View

[复制链接]

尚未签到

发表于 2015-4-28 10:48:56 | 显示全部楼层 |阅读模式
  有几天没有写博客了. 清明节啊! 在上一章的例程中通过Prism实现了Silverlight控件的简单加载。今天继续来个更复杂一点的。
  
  在Prism中有四个非常重要的对象: bootstrapper, shell. region, view。 bootstrapper在之前的章节中经常有用到,它作为一个启动器,用于系统的初始化工作。对于shell,个人理解,Shell就是系统的主界面,或者说,他是所有UI的容器。 Shell 里面一般都会有一个或多个Region。 Shell与Region的组合,在网上有人将它们与asp.net中的母板页做类比。这样类比很好,也确实差不多,Region的作用,跟网页中的 iframe差不多。只是Region中加载的是View,View就是一个用户控件。我将在下面的例程中一一讲述。
  
  还是在上一章的例程中进行修改:
  1. 删除解决方案中所有跟UIService相关的东东, 然后,在ModuleB项目中添加两个用户控件.在ModuleA项目添加一个用户控件。
  2, 在SLDemoApplication项目中添加一个用户控件,取名为Shell.xaml。这个用户控件将作为主窗体,在这里,我们称之为 Shell(上面讲到的,所有控件的容器。)
  3, 在Shell 中添加两个容器,代码如下:

1     
2
3         
4            
5            
6         
7
8         
10
11         
13      4. 分别在这两个项目中的Module类,使用RegionManager 将用户控件关联到Region上。方法见如下的代码:


1     public class TextServiceModule: IModule    2     {
3         IUnityContainer container;
4         RegionManager regionManager;
5
6         public TextServiceModule(IUnityContainer container, RegionManager regionManager)
7         {
8             this.container = container;
9             this.regionManager = regionManager;
10         }
11         public void Initialize()
12         {
13             RegisterServices();
14             RegisterViews();
15         }
16         private void RegisterServices()
17         {
18             container.RegisterType();
19         }
20         private void RegisterViews()
21         {
22             regionManager.RegisterViewWithRegion("ListRegion", typeof(ModuleAViewOne));
23             regionManager.RegisterViewWithRegion("ListRegion", typeof(ModuleAViewTwo));
24         }
25     }
  

  通过以上简单的几步, 就完成了用户控件的自动加载,并且是可插拔的加载!现在太晚了,关于在View中应用MVVM的部分就不说了,代码里面有。
  
  先上传今天的代码,里面有关于MVVM模式的简单应用。 请点击这里 下载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61493-1-1.html 上篇帖子: HBase shell 简单使用 下篇帖子: 简单的外壳(shell)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表