通过前面的学习,我们已经知道Data Binding是WPF“数据驱动UI”理念的基础。上一章我们将主要的精力放在了Binding的数据源这一端,研究了Binding的Source和Path。本章我们将把目光移向Binding的目标端,研究一下什么样的对象才能作为Binding的Target以及Binding将把数据送往何处。
1.1 属性(Property)的来龙去脉
程序的本质就是“数据+算法”,或者说用算法来操作数据来得到自己想要的结果。在程序中,数据表现为各种各样的变量,算法则表现为各种各样的函数(操作符是函数的简记法)。即使是到了面向对象时代有了类等数据结构的出现,这一本质仍然没有改变---类的作用只是将散落在程序中的变量和函数进行归档封装并控制对它们的访问而已。被封装在类中的变量称为字段,它表示的是类或实例的状态;被封装在类里的函数叫做方法,它表示的是类或实例的功能。字段和类构造出了最原始的面向对象封装,这时候的面向对象中还不包含事件,属性等概念。
我们可以使用Private、Public来控制字段或方法的可访问性:是否使用static关键字来修饰字段或者方法则决定了字段或方法是对类有意义还是对类的实例有意义。所谓“对类有意义”或者“对实例有意义”都是语言范畴的概念。比如对于Human这个类来说,Weight这个字段对于人类个体是有意义的而对于人类这个概念并没有什么意义。Amount这个字段就不一样了,它对于人类个体并没有什么意义,但是它对于人