Prism:模块(module)

Prism:模块(module)

什么是模块?

本质上来说, 对于一个应用程序而言, 特定功能的所有View、Service等都可以独立存在。那么意味着, 每个独立的功能我们都可以称之为模块。

创建模块

自动创建,适应pack包,创建后默认版本是.Net6,Prism是8.1.97。(注意:与主程序框架里面的版本均需一致)

image-20240827224738165

加载模块

我通常用两个方法:

1.手动引用

image-20240827225347430

这样的好处是可以在模块更新的同时方便调试,不好就是后期不方便与测试

2.XAML配置模块目录

在App.Xaml里面

image-20240827225537674

image-20240827225609695

注意: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)
    {
            
    }
}

在模块里面注册一个区域导航

image-20240827225003174

这里使用了 RegisterForNavigation 方法来注册 ViewA 视图和 ViewAViewModel 视图模型。这表明 ViewA 可以被导航到,并且 ViewAViewModel 将作为 ViewA 的数据上下文。

posted @ 2024-08-28 19:55  追忆呢  阅读(52)  评论(0编辑  收藏  举报