Prism合集(第十二章 MVVM设计模式)

目录

一 开发社区

二 上一章回顾

三 常见MVVM框架介绍

四 属性通知

1 mvvmlight视图模型基类

2 Prism视图模型基类

五 Command命令

1 RelaryCommand

2 DelegateCommand

六 复合命令(CompositeCommand)

1 定义方式

2 激活方式

七 总结

八 下章预告


一 开发社区

Developer Blog
Learn
Developer Platform


二 上一章回顾

一 开发社区

二 上一章回顾

三 自定义 ViewModel 注册

1.类型——类型

2.类型——工厂注册

3.泛型工厂注册

4.泛型类型注册

四 实战演练

六 总结

七 下章预告


三 常见MVVM框架介绍

如果你熟悉WPF当中的命令接口(ICommand), 通知属性表更(INotifyPropertyChanged)的作用, 就会发现众多框架都是基于这些进行封装扩展功能, 实现其通知、绑定、命令等功能来实现UI与数据的绑定来更新界面。

不同的MVVM框架,大同小异,大体使用上会在声明方式以及特定功能上存在存在差别。
下面列举了常用的3个MVVM框架,他们的一些差异。如下所示:

功能实现 / 具体框架PrismMvvmlightMicorosoft.Toolkit.Mvvm
通知BindableBaseViewModelBaseObservableObject
命令DelegateCommandRelayCommandAsync/RelayCommand
聚合器IEventAggregatorIMessengerIMessenger
模块化××
容器××
依赖注入××
导航××
对话××

如上所示, 各个框架都具备基础的通知、绑定、事件聚合器等功能, 而Prsim在此基础上额外扩展了依赖注入、容器、以及导航会话等功能, 可以适配你更加广泛的功能需求,所以建议大家用Prism。

当然,在实际的开发过程当中, 可以根据实际的功能需求, 对不同的框架选型, 同时这也需要你对各个框架之间的优缺点进行判断。

那么, 下面将主要介绍Prism当中的通知属性变更、绑定等功能。

四 属性通知

1 mvvmlight视图模型基类

如果和我一样之前使用过mvvmlight框架的同学, 应该对以下代码很熟悉,ViewModel继承类如下:

2 Prism视图模型基类

而在Prism当中, 需要继承于BindableBase, 如下所示:


五 Command命令

1 RelaryCommand

在mvvmlight/microsoft.toolkit.mvvm中, 声明Command需要声明RelayCommand,如下:

2 DelegateCommand

Prism当中, 你可以使用DelegateCommand并可携带参数, 如下:


六 复合命令(CompositeCommand)

1 定义方式

单个Command而言, 只能触发单一功能, 而复合命令是Prism当中非常强大的功能, CompositeCommand简单来说是一个父命令, 可以在其下注册N个子命令, 如下所示:

2 激活方式

父命令被激活, 它将触发对所有的子命令, 如果任意一个命令CanExecute=false,它将无法被激活,如下所示:

复合命令需要满足全部命令均为可执行状态时,才可执行激活


七 总结

以上就是Prism实现通知属性变更、命令和复合命令的过程,本文仅仅简单示范了如何使用,此处仅用来帮助学习理解,在实际生产环境开发过程中,我们就需要根据实际需求进行扩展。


八 下章预告

下一章我会教大家事件聚合器的使用


博主RaymondLeigh:如果您觉得本文为您提供了结局思路或解决了您的实际问题,麻烦您🙏帮忙点赞、收藏、评论、关注一键四连,您的举手之劳将为我写作提供动力源泉!🤞

print('Hello,RaymondLeigh!')  # 每日问候,跟大家问好!


🔥精品C#框架专栏:Prism合集 WPF合集


🌞精品前端MaterialDesign专栏:MaterialDesign专栏


💾精品后端SqlServer专栏:SqlServer专栏


 💻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值