打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Prism学习(6)---Shell Region View

有几天没有写博客了. 清明节啊! 在上一章的例程中通过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     <Grid x:Name="LayoutRoot" Background="White">
 2 
 3         <Grid.ColumnDefinitions>
 4             <ColumnDefinition/>
 5             <ColumnDefinition/>
 6         </Grid.ColumnDefinitions>
 7 
 8         <ItemsControl 
 9             regions:RegionManager.RegionName="ListRegion"/>
10 
11         <ContentControl Grid.Column="1" 
12             regions:RegionManager.RegionName="MainRegion"/>
13    </Grid>

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<ITextService, TextService>();
19         }
20         private void RegisterViews()
21         {
22             regionManager.RegisterViewWithRegion("ListRegion"typeof(ModuleAViewOne));
23             regionManager.RegisterViewWithRegion("ListRegion"typeof(ModuleAViewTwo));
24         }
25     }


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

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WPF开发之Prism详解【内附源码】
Prism简介
C# 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism
.NET Core 3 WPF MVVM框架 Prism系列之区域管理器
.NET Core 3 WPF MVVM框架 Prism系列之对话框服务
一步一步学Silverlight 2系列(3):界面布局
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服