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 相關內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM