WPF兵器升级之Prism框架

.NET原生支持MVVM模式,但在定义可通知属性和命令时,需要写较多代码(相比三方库而言)。

CommunityToolkit.MVVM库基于源代码生成器技术,通过为普通字段和方法添加注解,就能后台生成对应的可通知属性和命令,这一点做得相当漂亮,正因如此,该库成为轻量级MVVM框架的典范。

Prism库是一个重量级的MVVM框架,它的重点是提供了一整套系统解耦的方案,主要包括依赖注入容器、对话框服务、模型视图定位器、模块化机制、事件聚合器、页面导航,由于关注点不一样,该框架在可通知属性和命令定义方面较弱。

将两者结合起来使用,明确并严格遵守两者的职责界线,能最大程度提升WPF大型应用的开发效率和项目可维护性。

阅读更多

使用Extended.Wpf.Toolkit控件库

Extended.Wpf.Toolkit控件库是对WPF内置控件库的补充,提供了非常多的好用控件,可以帮助我们开发出交互性更强的桌面应用程序,是WPF程序开发的又一利器!

本文针对其中非常经典的几个控件做简要介绍,在后续项目中实际使用时可以更深入了解各控件用法。

阅读更多

WPF模板与样式

WPF中的模板是非常强大的机制,可以灵活设置控件的外观和数据呈现方式,在复杂GUI场景下会发挥巨大作用。

阅读更多

WPF资源

资源是WPF的一个重要主题,资源可以对一些属性值进行集中管理,方便后期统一修改和维护。WPF支持传统的二进制资源,也有特定的对象资源,本文进行系统介绍。

阅读更多

WPF的UI线程

在WPF中,UI线程是比较特殊的线程,如何实现非UI线程对UI元素的修改是一个常见问题。

本文先介绍UI线程的基本知识,然后以实例方式介绍BackgroundWorker的使用及其原理。

阅读更多

WPF/MVVM系列(7)——消息传递

WPF/MVVM系列文章的前面几篇将焦点聚集在一个ViewModel中,但在实际WPF项目中每一个窗体都对应一个ViewModel,如何在多个ViewModel之间传递数据是一个重要话题。本文介绍CommunityToolkit.MVVM框架的事件机制。

阅读更多

再话WPF绑定

在实际WPF项目中,可能会遇到非常复杂的数据绑定情况,本文针对一些常见情况,归纳出简单易用的数据绑定方法。

阅读更多

WPF数据校验

在WPF中,有许多数据校验方法,ValidationRule、IDataErrorInfo和DataAnnotations是三种最常用的方式,本文对其用法做一个简单介绍。

在实际项目开发中,推荐使用IDataErrorInfo + DataAnnotations的方案!

阅读更多

自制WPF多线程加载框

在实际项目中,有些后台操作耗时较久,这时前台最好有一个动画加载框给用户提示。
该加载框的动画显示和后台操作需要同时进行,因此需要采用多线程的方式进行实现。

阅读更多