绑定和命令是MVVM模式的核心,也是实际MVVM工程中应用最多的技术点。
绑定和命令是MVVM模式的核心,也是实际MVVM工程中应用最多的技术点。
学习WPF的路由事件,我认为最重要是以下两点:
相比传统的消息驱动和事件驱动模型,路由事件的优势是什么。
基于WPF的两种树形结构,直观理解路由事件的运行规律。
关于如何自定义路由事件以及附加事件,通常不是开发者的重点,如有必要可再深入探究。
.NET中有三种属性:C#语言层面的普通属性(以下简称“C#常规属性”)、WPF依赖属性、WPF附加属性。
C#常规属性的缘由:封装是面向对象编程的一大特性,其表现形式就是类。类通常包含若干字段,这些字段一般不直接对外开发,而是通过GetXXX/SetXXX这对方法来间接访问,这样就可以进行数据合法性检测。C#语言非常人性化,将GetXXX/SetXXX这对方法抽象成一个新的语言特性——属性。
WPF依赖属性和附加属性,从语言语法角度来看没有额外创新,属于.NET标准库层面的进一步封装。
数据是任何软件系统的主角,软件系统的核心功能就是对数据进行存储、处理和展示。
数据存储形式主要包括数据库和文件,该过程相对独立,技术方案也相对成熟;相反,随着UI日趋复杂,数据处理和数据展示这两部分总是难解难分,开发者经常会将两者的代码混淆在一起,一不小心就会严重伤害到软件的可维护性。
WPF的数据绑定就是为了从本质上解决这个问题:将内存数据绑定到UI,内存数据和UI任何一方的变化都能马上同步到另一方,在XAML上实现UI编程,尽可能减少后端代码介入UI逻辑,让开发重心回归到数据处理上。
学习WPF之前,思考以下三个问题很有必要:
日志在大型软件开发过程中扮演着不可或缺的角色,开发者经常使用它对系统进行调试和监控。
log4net是.NET平台上非常流行的日志库,网上零碎教程鱼龙混杂,花费良久才搭建起可用的基本框架。
本文简单介绍它的使用步骤,后续会专门写篇文章深入剖析其配置文件。
这种自动编译xrc文件、派生窗体类的机制将变化控制在wxFormBuilder界面设计上,一定程度上缓解了工具自动生成代码和手动调整代码两者之间的矛盾,从而保证了开发流程的连贯性。
对wxWidgets早有耳闻,一直没有尝试,近期出于好奇心折腾一番,顿觉相遇恨晚!写篇文章介绍下wxWidgets开发环境的搭建过程。
面向对象编程(OOP)四大特征:抽象、封装、继承、多态。主流的面向对象编程语言(如C++、Java、C#等)都有完善的面向对象实现机制。
C语言是面向过程编程语言,但可以通过结构体和指针实现类似的面向对象语言功能。所以,我更倾向于将其理解为一种编程思想,而不是面向对象编程语言仅有的特性。
本文基于一个实例,演示如何在C语言中实现多态。