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);
到此这篇关于wpf框架prism中view injection用法介绍的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。
发表评论