Data Binding导论

      Windows GUI运行的机理是使用消息来驱动程序,消息主要是用户操作,比如单击鼠标,点击键盘上某个按键等等。Windows API开发的纯消息驱动、MFC的C++类库的消息驱动、VB到.NET 框架的事件驱动这些的程序是由UI的消息驱使的,简称“消息驱动”或“事件驱动”,可以理解为“UI驱动程序”。

     UI占据软件系统主要地位,而在大学课本中我们所理解的程序,其实是数据结构+算法的组成,这块就有些背离软件最初的方向。

      随着UI的发展,用户对UI的需求越来越复杂,并且经常把UI代码与程序后台逻辑或者业务逻辑混在一切,使代码混乱而难以维护,因此加入了MVC、MVP、MVVM等设计模式,来使代码分隔开。

      WPF的Data Binding就是以数据占主导地位,UI辅助数据展示,由数据驱动软件。

      下图是软件一般所具有测三层结构:


    数据展示层主要采取消息的方式与消息处理层进行沟通,因此也很容易导致处理层的算法写进展示层,因此有了设计模式去解决这一问题。最麻烦的是,当同一数据与多个界面元素同时交互时,这中间产生同步的很多问题,会使这两层的代码错综复杂。当围绕需求及业务时,处理层占据主导地位;当软件进行显示时,展示层处在主导地位。因此这两层极为不稳定,所以WPF引入Data Binding及Dependency Property System和DataTemPlate使处理层占据主导地位,展示层处于从属地位。

    下图是WPF的桌面应用程序所组成的三层结构:


    引入WPF的Data Binding有以下好处:



发布了34 篇原创文章 · 获赞 12 · 访问量 2541

猜你喜欢

转载自blog.csdn.net/u013946061/article/details/80693284