wpf自定义行为库(一)
起因:我有个相对简单的WPF上位机程序,逻辑还是事件驱动那一套,虽然写的时候方便,但是代码的复用性太差了,并且各个模块的耦合度也很高,修改难度较大,于是我萌生了一个想法,将其改造为MVVM模式,同时也作为一次学习MVVM的实践,顺利的话还能得到一个不错的软件基本框架,不错的想法,冲了;
问题:刚开始改造就遇到一个问题,我应该怎样实现一个关闭窗口功能,同时要有弹窗提示,要符合MVVM,不会污染到ViewModel;
解决方案:用行为来实现,所以打算自己搞个行为库,也算是把重复利用率较高的代码封装起来,方便以后复用。
开搞开搞!
新建一个wpf类库,下载几个Nuget包:最开始我只下载了下面这个,足够满足需求
后面由于用的mvvm框架没有导航的功能,所以为了自己实现,又下载了两个Nuget包:
(实现过程详见另外一篇博客:wpf mvvm 用行为以及依赖注入的方式实现导航功能 - JustWantToStudy - 博客园 (cnblogs.com))
先看一下项目框架:
目前实现的行为有(从上到下):Button的点击导航行为,window的关闭和最小化行为,FrameworkElement的获取鼠标位置行为,Button的点击出现弹窗行为,window的初始化导航功能行为,ContentControl的区域注册行为;其中,第1、5、6这三个行为的最终目的就是实现区域导航功能。
后面会一一介绍。