WPF .Net6中使用Prism

.NET 6 是微软长期支持,并在移动、桌面、IoT 和云应用之间统一了 SDK、基础库和运行时。 

Prism为程序设计提供指导,旨在帮助用户更加容易的设计和构建丰富、灵活、易于维护WPF桌面应用程序。Prism使用设计模式(如MVVM,复合视图,事件聚合器),帮助你创建一个松耦合的程序。遵循这些设计模式原则,将目标程序解耦成独立的模块。这些类型的应用程序被称为复合应用程序。

本篇主要讲述在.NET 6环境中使用Prism框架,及Prism框架中各种功能和特性(Region(区域)Module(模块)Navigation(导航)对话服务发布订阅等)的使用。

概念点可参考:WPF Prism介绍和简单实例(基于.net framework)无熵~的博客-CSDN博客

实例链接:https://download.csdn.net/download/lvxingzhe3/87851930

一、首先安装VS2019及以上工具和.NET6 SDK,新建“WPF应用程序”工程,选择.NET6.0框架

​ 

 二、使用Nuget添加Prism.DryIoc包,并初始化Prism启动程序

可以参考Prism源码:https://github.com/PrismLibrary/Prism

​Note:还可以在VS"管理扩展"中安装Prism模板,在创建项目中选择Prism模板及可创建一个简单的Prism框架。

 三、Region(区域):Region是一个逻辑占位,使得程序UI布局被更新而不需要去更改程序逻辑

1.新建ViewA,ViewB用户控件,并在主程序中通过IContainerRegistry依赖注入ViewA,ViewB

2.在主界面中使用prism:RegionManager.RegionName指定Region占位符

3.使用IRegionManager 查找Region并替换需要注入的内容

四、 Module(模块):模块是一些功能的集合,能够被单独地开发、测试和部署

1.新建Prism模块,并定义模块类(实现IModule接口)

2.在主程序中引用模块项目,并通过IModuleCatalog加载项目模块

 Note:加载模块的方式有几种(实例中有体现):通过项目引用加载模块,通过类库dll文件加载模块,通过配置文件加载模块

五、Navigation(导航):导航是一个改变程序UI来放映用户和程序交互的结果或者是程序内部状态变化的过程。

1.使用INavigationAware或IConfirmNavigationRequest(继承INavigationAware并添加验证导航方法)实现导航功能,使用NavigationParameters添加导航参数,使用NavigationContext.Parameters.GetValue获取导航参数,使用ConfirmNavigationRequest验证是否导航。

 

2.通过IRegionNavigationJournal记录导航日志,实现页面返回,前进等操作 

 六、对话服务:封装的弹窗API,显示弹窗,解耦弹窗引用代码

1.使用IDialogAware接口,通过Action<IDialogResult>事件调起弹窗

2.通过IContainerRegistry注册对话服务

3.在主程序中使用RegisterDialog依赖注入 对话服务界面

 4.主界面通过IDialogService添加对话服务,并实现服务方法

七、 发布订阅:实现View,ViewModel之间的信息传递

1.添加一个发布事件公共类

2.主程序中通过IEventAggregator接口添加发布服务,并通过发布服务发布消息

 3.在界面中添加IEventAggregator接口服务,实现消息订阅

 实例链接:https://download.csdn.net/download/lvxingzhe3/87851930

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无熵~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值