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 @   追忆呢  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示