上一章回顾

  • 什么是Module?
  • 定义Module
  • ModuleCatalog这一章, 我们将讲解依赖注入模块当中的视图,呈现在主窗口Shell的区域当中。

    View

    View通常指的是, 我们定义的页面, 而在模块化的系统当中, 我们往往称之为用户控件(UserControl)。对于模块化系统而言, 每个模块当中都有N个用户控件组成, 然后模块向区域当中注册视图。

    View Injection

    在介绍Region章节当中所讲到,RegionManager的功能:

  • 维护区域集合

  • 提供对区域的访问
  • 合成视图
  • 区域导航
  • 定义区域

这意味着, 我们可以在模块当中为区域指定视图, 这个时候,我们就可以通过依赖注入的方式,使用IRegionManager接口来向指定区域注册视图:
public class ModuleAModule : IModule
{
private readonly IRegionManager _regionManager;

  1. public ModuleAModule(IRegionManager regionManager)<br /> {<br /> _regionManager = regionManager;<br /> }
  2. public void OnInitialized(IContainerProvider containerProvider)<br /> {<br /> _regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA));<br /> }
  3. public void RegisterTypes(IContainerRegistry containerRegistry)<br /> {<br /> <br /> }<br />}

当启动页当中定义了ContentRegion区域的时候, 将呈现ViewA。

区域访问

可以对已定义的区域进行 Add / Remove/ Activate/ Deactivate 等操作。如下所示, 关于IRegion接口:WPF Prism框架合集(5.View Injection) - 图1代码定义如下所示:
Iregion region = _regionManager.Regions[“RegionName“];
region.Add(viewInstance);
region.Remove(viewInstance);
region.Activate(viewInstance);
region.Deactivate(viewInstance);

下一章预告

View如何注册ViewModel, 介绍 ViewModelLocator 相关内容。