Prism学习总结
参考:(99+ 封私信 / 83 条消息) 每日一练一记录 - 知乎 (zhihu.com)
参考:Wpf Prism初体验、RegionManager区域 和 Module模块_wx6100f2eaee3e8的技术博客_51CTO博客
参考:GitHub - PrismLibrary/Prism: Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications..
Prism是什么
prism是一个用于构建松耦合,可维护和可测试的XAML应用程序框架。
常见的MVVM框架
MVVM(Model模型,View视图,ViewModel业务逻辑)主要解决视图和逻辑解耦,
IOC(Inversion of Control,控制反转)是一种设计原则和编程思想,通过外部容器来管理组件之间的依赖关系,而不是由组件自己创建和管理这些依赖关系。
依赖注入,这是控制反转的一种实现方式,通过外部容器动态的将依赖关系注入到组件中。
常见的MVVM框架当中,基本都围绕了ICommand、INotifyPropertyChanged封装实现绑定,通知功能。而对不同的框架之间,除了声明上的差异,还有特定功能上的不同。例如,在Prism当中,你可以遵循默认约定,即可自动将View/ViewMode建立DataContext的关系。同时默认支持多种容器(DryIOC,Unity)依赖注入,其强大的模块化,导航功能能够将应用变得更加灵活自如。
框架中的主要内容:1.Region(区域)、2.Module(模块)、3.MVVM(视图注入)、4.Event Aggregator(事件触发器)、5.Navigation(导航)、6.Dialog(对话)
功能/框架名 | Prism | MvvmLight | Microsoft.Toolkit.MVVM |
通知 | BindableBase | ViewModelBase | ObserableObject |
命令 | DelegateCommand | RelayCommand | AsyncRelayCommand |
聚合器 | IEventAggregator | IMessenger | IMessenger |
模块化 | 有 | 无 | 无 |
容器 | 有 | 无 | 无 |
依赖注入 | 有 | 无 | 无 |
导航 | 有 | 无 | 无 |
对话 | 有 | 无 | 无 |
创建Prism应用程序
在扩展里安装Prism Template Pack,后续创建wpf能够自己基于prism
1.Region(区域)
2.Module(模块)
3.MVVM(视图注入)
4.Event Aggregator(事件聚合器)
EventAggregator 事件聚合器(中心化事件管理系统)是一种实现组件间松耦合通信的模式,允许不同的组件订阅和发布事件,而不需要知道事件的发布者和订阅者,减少组件间的依赖关系。
参考:Prism框架核心内容三(事件聚合器) - 知乎 (zhihu.com)
5.Navigation(导航)
6.Dialog(对话)
Dialog通常是指一种窗口,它用于在当前应用程序和用户之间创建交互.对话框可以是模态的(阻塞用户与父窗口的交互直到对话框关闭),也可以是非模态的(允许用户在对话框和父窗口间自由交互)。
案例下载链接
0.区域,命令,事件聚合器,模型汇总
https://pan.baidu.com/s/1RXN19I9zNRqjKpRoBXXeuA?pwd=3drn
提取码:3drn
1.实现通知、命令和聚合器
.链接:https://pan.baidu.com/s/1LcUzH53x9dtGYjLpmAESQg?pwd=o78i
提取码:o78i
2.事件聚合器
链接:https://pan.baidu.com/s/1Q7pMfWcsbgTA1_nBBFAsyg?pwd=9wkm
提取码:9wkm
3.对话框
链接:https://pan.baidu.com/s/1mXk7Ruow00opiIv_N_Q-wQ?pwd=75z3
提取码:75z3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2022-04-20 C#无法加载DLL,找不到指定的模块的解决方案