WPF1 基本情况

起因:本来我的主业是ASP.NET MVC/ASP.NET WebAPI(现在主要是ASP.NET Core方向)以及前端,今年来新单位后接触了下工作,虽然后期也会以Core为核心,但一开始的任务还是有涉及WPF开发,遂开一个栏目简单的记录下自己WPF的学习记录和经验。

WPF目前已经被引入了Core 3.1,虽然不会跨平台,但能有所新花样也不算坏事。

WPF很早的就引入了MVVM的概念,而MVVM概念现在在前端JS框架中大行其道,借学习WPF的机会,也可以对后面可能的深入前端学习有所助益。

在WPF之前,WinForm和WebForm都是典型的“事件驱动”模式,这种由“事件-订阅-事件处理器”关系交织在一起构成的程序,虽然可以使用MVC,MVP等设计模式,但很容易就会使页面逻辑和业务逻辑纠缠而造成代码复杂难懂。

WPF是数据驱动的代表。

事件驱动,每一个操作都会激发程序触发一个事件,事件发生后,用于响应事件的事件处理器就会执行。事件驱动时代的数据是静态的,界面控件是主动的,界面逻辑和业务逻辑之间的桥梁是事件。

数据驱动,数据变化时,会主动通知界面控件,推动控件展示最新的数据,而用户对控件的操作也会直接送达数据,就好像控件是透明的。在这种驱动模式中,数据占据主动,控件和事件被弱化,事件一般只参与界面逻辑而不再染指业务逻辑,有效控制程序复杂度。数据和界面之间的桥梁变成了数据关联(Data Binding)。

 

posted @ 2020-05-28 21:32  NicolasLiaoRan  阅读(194)  评论(0编辑  收藏  举报