wpf自定义行为库(一)

起因:我有个相对简单的WPF上位机程序,逻辑还是事件驱动那一套,虽然写的时候方便,但是代码的复用性太差了,并且各个模块的耦合度也很高,修改难度较大,于是我萌生了一个想法,将其改造为MVVM模式,同时也作为一次学习MVVM的实践,顺利的话还能得到一个不错的软件基本框架,不错的想法,冲了;

问题:刚开始改造就遇到一个问题,我应该怎样实现一个关闭窗口功能,同时要有弹窗提示,要符合MVVM,不会污染到ViewModel;

解决方案:用行为来实现,所以打算自己搞个行为库,也算是把重复利用率较高的代码封装起来,方便以后复用。

 

开搞开搞!

新建一个wpf类库,下载几个Nuget包:最开始我只下载了下面这个,足够满足需求

 

 后面由于用的mvvm框架没有导航的功能,所以为了自己实现,又下载了两个Nuget包:

(实现过程详见另外一篇博客:wpf mvvm 用行为以及依赖注入的方式实现导航功能 - JustWantToStudy - 博客园 (cnblogs.com)

 

 

先看一下项目框架:

 

 目前实现的行为有(从上到下):Button的点击导航行为,window的关闭和最小化行为,FrameworkElement的获取鼠标位置行为,Button的点击出现弹窗行为,window的初始化导航功能行为,ContentControl的区域注册行为;其中,第1、5、6这三个行为的最终目的就是实现区域导航功能。

后面会一一介绍。

posted @ 2023-03-20 13:38  JustWantToStudy  阅读(51)  评论(0编辑  收藏  举报