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

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

视频所在连接

6.MVVM_哔哩哔哩_bilibili

0

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

创建prism项目

0

0

0

注意重写接口

0

0

安装prism的项目模板

0

0

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

Prism Template Pack - Visual Studio Marketplace

0

PrismTemplatePack.vsix

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

安装成功。

0

创建空白应用程序

0

0

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

0

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

Region

0

0

0

0

指定regon代码代码:

0

0

0

0

0

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

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

官方实现了几种适配器

0

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

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

0

0

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

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

0

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

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中添加区域适配器

0

效果如下:

0

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

0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值