你的位置:首页 > 软件开发 > ASP.net > WPF学习之Binding的学习(一)

WPF学习之Binding的学习(一)

发布时间:2016-08-06 01:00:31
程序的本质是数据加算法。通俗一点来说呢,其实就是用户给一个输入,经过算法的处理之后,计算机反馈一个输出给用户。可以很清楚的看出,在这个过程中,处于主导地位的是数据。但是,当我们在进行图形用户界面(Graphic User Interface,GUI)编程的时,数据总是处于被动地位 ...

WPF学习之Binding的学习(一)

程序的本质是数据加算法。通俗一点来说呢,其实就是用户给一个输入,经过算法的处理之后,计算机反馈一个输出给用户。可以很清楚的看出,在这个过程中,处于主导地位的是数据。但是,当我们在进行图形用户界面(Graphic User Interface,GUI)编程的时,数据总是处于被动地位。也就是说,程序总是在等待接收来自UI的消息/事件,在这些事件被处理之后,才会反馈给用户一个输出。我们用Data Binding可以在GUI编程时让数据回到程序的核心。 **1、Data Binding在WPF中的地位** 我们之前也提到过,程序的本质就是数据+算法。数据一般会在存储、逻辑和展示三个层进行流通,相对应的来讲,算法一般会分布在以下几处: A、数据库内部 B、读取和写入数据 C、业务逻辑 D、数据展示 E、界面与逻辑的交互 我们很容易能够理解,A、B两部分的算法一般很稳定,我们在编程的过程中很少去改动他们,同时他们的复用性也是很高。C这一部分包含大量的算法,因为其与客户的需求关系最为紧密,这也就导致这一部分的代码最复杂、变动最大。D、E两部分主要负责UI与逻辑的交互,也会有相应的算法。 显而易见,包含大部分代码的C部分最为重要,是开发的重中之重,但是在我们开发的过程中,D、E两个部分却经常成为麻烦的来源。问题的根源就在于逻辑层与展示层的地位不固定——当我们去编程实现用户的需求是,很显然逻辑层处于中心地位,但是在UI交互的过程中,展示层又处于中心地位。WPF作为一种专门的展示层技术,在其华丽的外观这种表层现象之下,更重要的是他在很层次上帮助程序员把思维的重心固定在逻辑层,无论在什么情况下,展示层总是处于从属地位。是什么让WPF拥有这种“超能力”呢?关键就在于WPF引进了Data Binding以及与之配套的Dependency Property和Data Template。 我们常常说在WPF开发中,是“数据驱动UI”,那么究竟什么事“数据驱动UI”呢?其实,在WPF编程中,Data Binding起到的作用就如同现实生活中的高速公路,有了他,加工好的数据就会自动传入到用户界面加以显示,被用户修改过的数据也会通过他自动回传到逻辑层……周而复始,程序的逻辑层就想一个引擎一样不停的运转。 在引入了Data Binding机制后,逻辑层和展示层之间就会是直来直去的,不涉及任何的逻辑问题。这样带来的好处就是用户界面不包含算法;而Data Binding本身就是双向通信,所以相当于将D、E两个部分合二为一。 **2、Binding基础** 什么事Binding?我们可以将Binding看做一个桥梁,他的两端分别是Source和Target。数据从哪里来,那么哪里就是source,到哪去那就是target。一般而言,Binding的源是逻辑层的对象,Binding的对象是UI层的控件对象。实现Binding后,数据就会源源不断的从逻辑层通过Binding送到UI层,UI层将这些数据进行展示,这就完成了数据驱动UI的过程。同时,在这个过程中,我们可以设置源于目标之间是双向通信还是单向通信,还可以在数据传送的过程中对数据的准确性进行校验甚至转换数据的类型。 下面,我们来看一个最简单的Binding的例子。 首先,我们创建一个Student的对象,让它作为数据源进行使用。

1 class Student2   {    3     private string _name;4     public string Name5     {6       get{return _name;}7       set{_name = value;}8     }    9   }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:WPF学习之Binding的学习(一)

关键词:wpf

wpf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。