導航
視頻教程地址
上一章回顧
- 什么是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 相關內容。