目录
构造Prism.Dryloc项目
在程序中下载Nuget包Prism.DryIoc
在APPcs改变引用类型
前端Xaml(App)
prismRegion(区域)
实现目的,降低程序之间的耦合性质,降低前端后端依赖性。
在我们创建了程序的Prism.Dryloc程序后在设置 prism:ViewModelLocator.AutoWireViewModel="True"我们将在程序中模拟实现传递程序窗体。
1在程序中注册全局可用区域名称 (注意设置名称时 不能为中文)
2在程序显示区域声明名称
3在需要触发区域显示窗体时,调用窗体
并生成一个IRegionManager接口的字段
4触发显示内容
Prism 模块化
更大程度的减低程序之间的耦合度。如在多个项目中有些项目担当的就是承载试图的如
前面的项目都将只是程序之间的视图承担,意思就是只放置视图
多余的都删除将程序的生成方式改为视图(安装prism Dryloc)
在视图的解决项目中创建类将当前的视图都注册进去,且放置在容器之中把,(个人理解)
如ModelA中的Module
多少窗体需要弹出显示就注册多少
ModelB中也是一样
现已经注册,多个窗体。
在显示的解决方案中添加模块(app.xaml中)
提示注册时的名字和传递的名字一致才是窗体对应上。
-
Prism导航及传参及阻止跳转
导航顾名思义,返回程序的上下步骤,如在A界面操作后跳转到B界面继续操作这时,我们想回到A那么我们就能使用导航来实现,当然导航时每次的界面跳转都会记录并非这一两次的跳转记录。
传参
1先说传参,在我们跳转时我们都是通过之前标识的名称来传递如图
2但我们在调用窗体的同时还可以给相应的窗体传递参数如图
3在我们接收的窗体中VM中继承接口
IConfirmNavigationRequest IConfirmNavigationRequest 比INavigationAware (导航感知) 多一个阻止跳转的ConfirmNavigationRequest方法
阻止跳转
在被跳转的视图对应的VM中接口IConfirmNavigationRequest 中方法
ConfirmNavigationRequest 委托参数bool true 跳转
步骤1使用的框架是prism 所以先构造框架,前面有介绍。
步骤2 前面的区域和模块化都有介绍 在我们注册和添加窗体后
在调用窗体的时候 有个委托参数,委托参数 先声明一个负责跳转的字段 接口 IRegionNavigationJournal
步骤3
步骤3是记录下了导航跳转内容以便之后跳转。
步骤4实现跳转
依旧前面接口成员IRegionNavigationJournal 的字段 在步骤3中已经赋值所以 直接调用返回方法函数,和前进方法函数就能实现导航效果