WPF自学入门(七)WPF 初识Binding

时间:2022-04-25 03:57:41

今天记录一下Binding的根本和具体的使用要领,说起这个Binding,在WPF中,Binding是很重要的特征,在传统的Windows软件来看,大大都都是UI驱动措施的模式,也可以说事件驱动措施,这个措施模式在事情过几年的措施员中是根深蒂固的,WPF作为Winform的升级,它把UI驱动措施彻底转变了,核心回到了数据驱动措施的模式上面,这样,措施就回到了算法和数据。数据,才是真正需要重点措置惩罚惩罚的!

Binding在数据驱动措施模式中起着至关重要的感化,它最为重要的一个特点就是通讯,连接着前台与后台。首先看一下Binding最简单的使用要领:

一、元素之间的绑定

WPF自学入门(七)WPF 初识Binding

这里有3个控件,Slider,TextBox,Label,此中TextBox和Label都作为方针,Slider都作为数据源,把Slider中的值交由两个控件浮现,移动滑块,TextBox会自动显示Value的值,也就是FontSize的值。因为两个绑建都设置了双向绑定,所以可以在文本框中输入值,然后丢掉焦点,也能反馈回去。

看一下XAML中的绑定语句,这里用的ElementName就是制定要绑定的东西的名字,Path就是要绑定的依赖项属性,mode就是绑定方法,这里需要说明的是mode有五种方法:

(1)OneWay 单向绑定

(2)TwoWay 双向绑定

(3)OneTime,最初按照源属性值设置方针属性,以后就忽略所有转变,就是说,只进行初始化。

(4)OneWayToSource,这和OneWay相反

(5)Default,这是默认形式,它按照方针属性自动设置。

如果把TextBox中的值改削成其他的,滑条位置没有转变,字体巨细也没有转变,这是什么回事呢?当TextBox掉去焦点的时候,就会产生相应的转变了。这是因为这个绑定中的默认更新机制,更新机制Binding.UpdateSourceTrigger,这个属性有4个枚举值

(1)PropertyChange,当值转变的时候,就更新。

(2)LostFocus,其时去焦点的时候更新.

(3)Explicit,当挪用BingingExpression.UpdateSource()要领的使用更新,其他情况不会更新。

(4)Default,默认形式

注意:以上这四种更新机制的设定,只会影响源数据,而不会影响方针数据。

WPF自学入门(七)WPF 初识Binding

二:元素自身的绑定

除了可以绑定另外元素,也可以绑定自身的其他属性,例如Slider自身的Opacity属性和自身的Value属性绑定,当滑块向左移动的时候,会逐渐隐藏起来。

WPF自学入门(七)WPF 初识Binding

三:后台数据与元素之间的绑定

前面说了元素之间的绑定和元素自身的绑定,最后重点来了后台数据和前台元素的绑定,这种绑定方法很好地浮现了数据驱动措施的运行模式。

首先新建Person类

WPF自学入门(七)WPF 初识Binding

页面后台代码

WPF自学入门(七)WPF 初识Binding

显示效果:

数据的绑定的方法已经写完了。Binding是一条高速公路,那么为了提高数据通报的合法性和有效性,我们要在这条高速公路中成立起一系列的关卡,有的用来转换数据,有的用来校验数据,下面就说一下Binding对数据的校验和转换。

(一)Binding的数据校验

Binding的数据校验事情是派生自ValidationRule类,并且对Validate要领进行重写的自界说类!看一下实例:

WPF自学入门(七)WPF 初识Binding

先设计一个查验类,它担任ValidationRule类并且重写Validate要领。使用这个类的时候是创建Binding的时候设置校验的。

代码如下:

WPF自学入门(七)WPF 初识Binding

好了,看一下功效

WPF自学入门(七)WPF 初识Binding

因为设置了值传过去的值不能是赶过0~100之间,所以当赶过了就显示红色边框。在Binding中,默认是会认为数据源是必定正确的,所以如果将TextBox作为数据源,而Slider作为方针,,数据源输入错误是没有显示的,那么怎么解决这个问题呢,设置VdataValidationRule.ValidatesOnTargetUpdated = true;

( 二)Binding的数据转换