WPF框架Prism中View Injection用法介绍
时间:2022-12-13 09:30:31|栏目:.NET代码|点击: 次
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);