Loading

WPF Prism框架合集(5.View Injection)

导航

开发者博客
文档学习
开发者平台

视频教程地址

点击观看视频教程

上一章回顾

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

View

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

View Injection

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

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

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

public class ModuleAModule : IModule
{
    private readonly IRegionManager _regionManager;

    public ModuleAModule(IRegionManager regionManager)
    {
        _regionManager = regionManager;
    }

    public void OnInitialized(IContainerProvider containerProvider)
    {
        _regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA));
    }

    public void RegisterTypes(IContainerRegistry containerRegistry)
    {
            
    }
}

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

区域访问

可以对已定义的区域进行 Add / Remove/ Activate/ Deactivate 等操作。如下所示, 关于IRegion接口:

代码定义如下所示:

Iregion region = _regionManager.Regions[“RegionName“];
region.Add(viewInstance);
region.Remove(viewInstance);
region.Activate(viewInstance);
region.Deactivate(viewInstance);

下一章预告

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

posted @ 2020-12-09 17:14  痕迹g  阅读(6198)  评论(0编辑  收藏  举报