10 2015 档案
摘要:我们把有用的东西称为资源,程序中存放数据的地方有很多,可以放在数据库里,可以存储在变量里,界于数据库存储与变量存储之间,我们还可以把数据存储在程序主体之外的文件里。外部文件与程序主体分离,这就有可能丢失或损坏,为了避免丢失或损坏,编译器允许我们把外部文件编译进程序主体,称为程序主体不可分割的一部...
阅读全文
摘要:命令与事件类似,事件用来发布传播一些消息,消息到达接收者,事件的使命就完成了,至于如何响应事件送来的消息事件并不做规定;而命令一旦发出,所有的命令目标都必须执行这个命令,二者的区别就在命令具有约束力而事件没有。 命令的基本元素命令(Command):WPF的命令实际就是实现了ICommand接...
阅读全文
摘要:事件的前身是消息(Message)。Windows是消息驱动的操作系统,运行其上的程序也遵照这个机制运行。消息本质就是一条数据,这条数据记载着消息的类别,必要的时候还记载一些消息参数。比如鼠标左键点击窗体时,就会产生一条WM_LBUTTONDOWN消息并加入Windows待处理的消息队列中,当W...
阅读全文
摘要:属性 程序的本质就是“数据+算法”,在程序中,数据表现为各种各样的变量,算法表现为各种各样的函数。 在面向对象的时代,类把散落在程序中的变量和函数进行归档并控制对它们的访问。被封装在类里的变量称为字段(Field),表示的是类或实例的状态;被封装在类里的函数称为方法,表示的是类或实例的功能。 ...
阅读全文
摘要:当UI需要显示的信息由多个数据源来决定的时候就需要使用MultiBinding,即多路Binding。MultiBinding与Binding一样均以BindingBase为基类,也就是说凡是能使用Binding对象的场合都能使用MultiBinding。 MultiBinding具有一个名为...
阅读全文
摘要:当Source端Path所关联的数据与Target端目标属性数据类型不一致时,就需要进行转换。如果是基本类型的转换,WPF就替我们做了,但下面几种情况,就需要我们自己写数据转换器:Source里的数据是Y、N和X三个值,UI上对应的是CheckBox,需要把三个值映射为它的IsCheck属性;当...
阅读全文
摘要:Binding用于数据有效性校验的是ValidationRules属性,ValidationRules的类型是Collection,可以为Binding设置多个数据校验条件,每个条件是一个ValidationRule类型对象。 ValidationRule是一个抽象类,在使用的时候我们需要创建...
阅读全文
摘要:把普通的CLR类型单个对象指定为Source 包括.NET Framework自带类型的对象和用户自定义类型的对象。如果类型实现了INotifyPropertyChanged接口,则可通过在属性的Set语句里出发PropertyChanged事件来通知Binding来更新数据。具体例子参考这里。把...
阅读全文
摘要:Binding的源 Binding的源也就是数据的源头。Binding对源的要求并不苛刻---只要它是一个对象,并且通过属性(Property)公开自己的数据,它就能作为Binding的源。 实体类作为Binding的源,需要实现INotifyPropertyChanged接口并在属性set中触...
阅读全文