WPF .Net6中使用Prism

news/2024/11/29 4:41:44/

.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://download.csdn.net/download/lvxingzhe3/87851930

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

 

 


http://www.ppmy.cn/news/141073.html

相关文章

计算机保密口诀,日常工作的保密顺口溜口诀

日常工作的保密顺口溜口诀 相关内容: 顺口溜读起来朗朗上口、韵味十足,从形式上看,顺口溜非常简短,所以便于记忆。第一范文网小编这里为大家整理了一些生活中的顺口溜&#xff0c;希望大家喜欢。 顺口溜是日常生活中人民群众表达自己所见所闻所感常见语言形式,具有朗朗上口、语…

API接口开放平台

近期服务器不想在维护了&#xff0c;接口已经陆续开放 服务器也经常奔溃&#xff0c;一分价钱一分货 忠告&#xff1a;出了事情要学会使用法律武器保护自己 主要推荐初步入门学习的伙伴&#xff0c;可以借助这些接口丰富自己的站点 API接口包括&#xff1a; 一、资讯 全网热…

超级简单的自动刷新_输入名字,自动生成情侣头像~

萌闪光点头像 微信、QQ技巧,各种好玩实用软件分享 大家好 今天给大家介绍 的一个实用的 输入名字, 自动生成情侣头像~ 下面就给大家展示一下吧 视频教程 适合系统:所有 那么也想试试这个输入名字,自动生成情侣头像的话,可以在后台回复【情侣】或者【1314】获取这个软件,…

unicode 生僻字_最难汉字biáng被Unicode收录,网友:我知道该给孩子取什么名了

十三 发自 凹非寺量子位 报道 | 公众号 QbitAI 有一种面条&#xff0c;很多人吃过&#xff0c;但很少人能写对它的名字&#xff0c;甚至拿输入法都打不出来。 没错&#xff0c;这就是著名的陕西 「bing bing 面」。 这是因为像bing这样的字太生僻了&#xff0c;所以电脑的字符编…

springcontext.xml 中方言是红色的_人文黄岩 魅力方言

文&#xff5c;夏吟 黄岩&#xff0c;有着丰厚的文化底蕴。黄岩方言是黄岩历史文化的活化石&#xff0c;她历经漫长的演变过程而逐渐形成&#xff0c;是黄岩历史文化的重要载体和表现形式&#xff0c;具有独特的乡土气息和文化魅力&#xff01; 一、 黄岩方言及其研究概况 黄岩…

送给前线码农的话 – 大牛们的经典语录

近半年来&#xff0c;本人几乎天天逛各大论坛网站&#xff0c;浏览大牛们的博客&#xff0c;摘抄了不少经典的好词好段&#xff0c;虽是只言片语&#xff0c;但是这都是当代大牛们的语录心得&#xff0c;所以今天拿出来与大家分享&#xff0c;希望多留言&#xff0c;共同探讨。…

基于人工智能的盲人阅读器

本文在原码基础上做出很多修改&#xff0c;很感谢博主提供项目开发基础&#xff0c;有读者如果想看原文请点击原文链接&#xff1a;https://blog.csdn.net/aqqwvfbukn/article/details/106349903. 文章目录 引言编写目的背景 一、软件概述&#xff08;一&#xff09;名称&#…

微信公众号 攻略

查看详细&#xff1a;http://wx0725.top/index.php/archives/224/ 下面主要是写一些公众号攻略&#xff08;关键是最近迷茫了&#xff0c;没有了方向&#xff09;。 ![gaitubao_DOA9VTH_DLT1V7M3B9KCN.jpg][1] 发送文本发送图片发送语音发送视频 2021-07-13 关键词回复 【情书…