一、新建Prism框架项目
二、框架内容介绍
一、新建一个WPF基于Core或Frameword的
1、在项目里点击添加Nuget包
2、选择->如下图
3、然后关闭VS后包会自动进行安装。
4、打开VS选择->空的Prism项目进行创建,选择Dryloc
5、项目介绍->MainWindow-MainWindowViewModle
介绍几点
1、在Prism框架里View和ViewModel视图默认通过反射来寻找。比如View名字为Student对应的ViewModel就应该为StudentModelView来定义。prism:ViewModelLocator.AutoWireViewModel="True"也应设置为True
创建框架成功后Title为示例。
2、上图为ViewModel代码
3、BindableBase 是 Prism 框架中的一个基类,它实现了 INotifyPropertyChanged 接口。在 WPF 中,我们需要将普通属性转换为依赖属性,以便在属性值发生变化时通知 UI 进行更新。BindableBase 可以帮助我们实现这一点。BindableBase 的主要作用是将普通属性转换为依赖属性,并在属性值发生变化时通知 UI 进行更新。它还提供了一些其他功能,例如自动序列化和反序列化等。如果需要在 WPF 中使用数据绑定,那么继承自 BindableBase 是一个很好的选择。
4、SePriperty时BindableBase 里的一个方法,当属性值发生变化后触发事件,启动自动更新的作用
6、App.xaml-App.xaml.cs介绍
1、App.xsml
其中为Prism项目添加
2、App.xaml.cs
一共两个方法
1)、CreateShell 项目启动页面
2)、RegisterTypes 方法是 Prism 框架中用于注册视图模型的方法。它接受一个或多个参数,包括要注册的视图模型类型、命名空间等信息。该方法将视图模型注册到容器中
二、区间内容介绍
- 1.Region(区域管理)
- 2.Module(模块)
- 3.View Injection(视图注入)
- 4.ViewModelLocationProvider(视图模型定位)
- 5.Command(绑定相关)
- 6.Event Aggregator (事件聚合器)
- 7.Navigation(导航)
- 8.Dialog(对话框)
1、Region(区域管理)
- 介绍
顾名思义,区域指定是把页面固定分成几部分,每个部分干什么事情
- 使用
- ContentControl接收一个区域,成为一个区域的宿主prism.RegionManger.RegionName="ContenRegion"调用
- 区域只能接收一个用户控件作为内嵌入
- 下面例子介绍如何使用区域
- 1、创建一个 用户控件页面
- 2、在MainViewModel构造函数内添加 注册
- 3、启动
- 页面的绑定方式也可以写在 MainWindows.cs内。通过代码指定
- 下面介绍一下内置区域适配器的控件,可直接在页面中使用的
WPF Prism框架内置了多个区域适配器,其中包括:
RegionManager
:用于管理应用程序中的区域。它提供了一些方法来注册、注销和切换区域。
ContentControl
:用于在不同的区域中显示内容。它支持使用区域名称作为属性值来指定要显示的内容所在的区域。
DataTemplateSelector
:用于选择要在不同区域中使用的模板。它可以根据当前的区域来选择合适的模板。
StyleSelector
:用于选择要在不同区域中使用的样式。它可以根据当前的区域来选择合适的样式。这些控件都是Prism框架内置的,可以直接在WPF应用程序中使用。
- 像一些没有内置区域控制器的控件,比如(StackPanel),如果想使用就需要自己创建区域,下面介绍一下自己写区域适配
- 让StackPanel成功一个区域
- 1、设置Name。进行页面上的绑定
- 2、创建一个自定义的设配器,按如下操作
Adapt方法为关键,StackPanel控件进行操作时会触发事件。
- 3、在App.Xams.cs内添加方法 并添加设置StackPanel适配器
此方法为区域适配器映射,告诉WPF将特定的控件与区域进行关联,此方法运行你使用自定义的控件作为区域的宿主,并指定与之关联的适配器
- 4、注册这块依旧使用 注册ViewA
- 5、运行效果