Prism:模块(module)
Prism:模块(module)
什么是模块?
本质上来说, 对于一个应用程序而言, 特定功能的所有View、Service等都可以独立存在。那么意味着, 每个独立的功能我们都可以称之为模块。
创建模块
自动创建,适应pack包,创建后默认版本是.Net6,Prism是8.1.97。(注意:与主程序框架里面的版本均需一致)
加载模块
我通常用两个方法:
1.手动引用
这样的好处是可以在模块更新的同时方便调试,不好就是后期不方便与测试
2.XAML配置模块目录
在App.Xaml里面
注意:dll设置为允许复制,这样就可以输出到Debug里面了。
模块注册视图
我们可以通过依赖注入的方式,使用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)
{
}
}
在模块里面注册一个区域导航
这里使用了 RegisterForNavigation
方法来注册 ViewA
视图和 ViewAViewModel
视图模型。这表明 ViewA
可以被导航到,并且 ViewAViewModel
将作为 ViewA
的数据上下文。