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