1. 创建prism项目以及Region学习

感谢up主做出的贡献,方便大家的学习。

视频所在连接

https://www.bilibili.com/video/BV1Ei4y1F7du?p=6&spm_id_from=pageDriver

1. 创建prism项目以及Region学习

以下是我学习过程的笔记。

创建prism项目

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

注意重写接口

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

安装prism的项目模板

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

网络不行 下载不了,自己跑到网上下载

https://marketplace.visualstudio.com/items?itemName=BrianLagunas.PrismTemplatePack

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

我电脑安装了多个vs,只能识别出来vs2019,并且在vs查找,也确实只有vs2019能够查找出来,

安装成功。

1. 创建prism项目以及Region学习

创建空白应用程序

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

解决办法:升级vs2019到最新版,能够解决问题,如果不行,充钱能解决!

1. 创建prism项目以及Region学习

基本上就是我们创建的空模板

Region

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

指定regon代码代码:

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

同时还提供了对区域模块的获取

var region = regionmanger.Regions["ContentRegion"];

官方实现了几种适配器

1. 创建prism项目以及Region学习

只有实现了适配器才能动态玩contentcontrol添加内容

如果这样写会报错,因为官方没有实现这个的适配器

1. 创建prism项目以及Region学习

1. 创建prism项目以及Region学习

没有stackpanel是适配器就需要自己写适配器

定义适配器类,基层于适配器基类,这是个泛形类

1. 创建prism项目以及Region学习

这样就实现了一个区域适配器

using Prism.Regions;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

namespace WpfPrismApplication.Adapter

{

public class StackPanelAdapter : RegionAdapterBase

{

public StackPanelAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory)

{

}

protected override void Adapt(IRegion region, StackPanel regionTarget)

{

//监测区域中视图是否发生变化,比如给stackpanel添加按钮时候,这个事件就会被触发

region.Views.CollectionChanged += (s, e) => {

//add behavior

if (e.Action==System.Collections.Specialized.NotifyCollectionChangedAction.Add)

{

foreach (FrameworkElement item in e.NewItems)

{

regionTarget.Children.Add(item);

}

}

};

}

protected override IRegion CreateRegion()

{

return new Region();

}

}

}

然后再app.xmal.cs中添加区域适配器

1. 创建prism项目以及Region学习

效果如下:

1. 创建prism项目以及Region学习

注意需要再mainwindow中注册两个区域

1. 创建prism项目以及Region学习

上一篇:Prism入门之模块(Module)


下一篇:Prism入门之区域(Region)管理