设为首页
收藏本站
切换到宽版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
VIP用户组
官网群
无名商城论坛
»
论坛
›
资源分享区
›
学习资源专区
›
【LSP】.NET Core 3 WPF MVVM框架 Pris
返回列表
发帖
查看:
246
|
回复:
0
[其他技术]
【LSP】.NET Core 3 WPF MVVM框架 Pris
[复制链接]
无名
无名
当前离线
积分
32464
1万
主题
1万
帖子
3万
积分
管理员
积分
32464
发消息
发表于 2022-5-8 17:04:07
|
显示全部楼层
|
阅读模式
本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理
一.区域管理器#
我们在之前的Prism系列构建了一个标准式Prism项目,这篇文章将会讲解之前项目中用到的利用区域管理器更好的对我们的View进行管理,同样的我们来看看官方给出的模型图:
现在我们可以知道的是,大致一个区域管理器RegionMannager对一个控件创建区域的要点:
创建Region的控件必须包含一个RegionAdapter适配器
region是依赖在具有RegionAdapter控件身上的
其实后来我去看了下官方的介绍和源码,默认RegionAdapter是有三个,且还支持自定义RegionAdapter,因此在官方的模型图之间我做了点补充:
二.区域创建与视图的注入#
我们先来看看我们之前项目的区域的划分,以及如何创建区域并且把View注入到区域中:
我们把整个主窗体划分了四个区域:
ShowSearchPatientRegion:注入了ShowSearchPatient视图
PatientListRegion:注入了PatientList视图
FlyoutRegion:注入了PatientDetail和SearchMedicine视图
ShowSearchPatientRegion:注入了ShowSearchPatient视图
在Prism中,我们有两种方式去实现区域创建和视图注入:
ViewDiscovery
ViewInjection
1.ViewDiscovery#
我们截取其中PatientListRegion的创建和视图注入的代码(更仔细的可以去观看demo源码):
MainWindow.xaml:
Copy
<ContentControl Grid.Row="2" prism:RegionManager.RegionName="PatientListRegion" Margin="10"/>
这里相当于在后台MainWindow.cs:
Copy
RegionManager.SetRegionName(ContentControl, "PatientListRegion");
PatientModule.cs:
Copy
public class PatientModule : IModule
{
public void OnInitialized(IContainerProvider containerProvider)
{
var regionManager = containerProvider.Resolve<IRegionManager>();
//PatientList
regionManager.RegisterViewWithRegion(RegionNames.PatientListRegion, typeof(PatientList));
//PatientDetail-Flyout
regionManager.RegisterViewWithRegion(RegionNames.FlyoutRegion, typeof(PatientDetail));
}
public void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
区域
,
视图
,
注入
,
我们
,
创建
相关帖子
•
【LUR】王者充值装逼配置及搭建后台APP创建
•
【FUT】AIDE第一课
•
【FUT】AIDE第二课
•
【Max】团队~利用AIDE做个小应用=总结+AIDE教程结束
•
【DMT】■iApp系列教程①~创建一个应用,简单修改,打包软件
•
【LUR】【教程+源码】要饭系统网站
•
【LUR】帅气炫迈在线教你如何搭建蔡徐坤打篮球网站
•
【解忧】深入理解Java反射
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表