标签:
WPF与传统WINFORM最大区别在于WINFORM是以事件为驱动贯穿在整个项目中,而WPF则以数据为驱动贯穿整个项目。
为了实现数据驱动模型,则必须依赖于某种特定的法则及方式,比如依赖项属性、元素绑定等。
元素绑定的前提需要依赖项属性的支持,对于依赖项属性,到目前为止我还一知半解,理解的并不透彻。
下面简要概述一下元素绑定:
元素Element,在WPF中无处不在。
绑定Binding,实现数据驱动的必须方式。
元素绑定其意为实现A元素的某个属性(目标)绑定为B元素的某个属性(源)。
示例一:
1 <Slider name="sliderFontSize" Value="10" Maximum="40" Minimum="1"></Slider> 2 <TextBlock FontSize=“{Binding ElementName=sliderFontSize,Path=Value}”>调节字体大小</TextBlock>
将TextBlock字体大小属性FontSize绑定到Slider的Value属性,那么Value属性的更改直接作用到了FontSize属性,前提Value是依赖项属性
ElementName为要绑定的元素名称,Path为该元素属性路径,这里使用路径而不用Property是因为有些属性下面有多级层次的关系,如:FontFamily.Source等,所以使用Path更准确一些。
该示例为单向绑定,即源属性的更改可自动通知目标属性,但目标属性更改后源是不知道的,为了实现双向的绑定可在目标元素中修改绑定模式。
示例二:
<Slider name="sliderFontSize" Value="10" Maximum="40" Minimum="1"></Slider> <TextBlock FontSize=“{Binding ElementName=sliderFontSize,Path=Value,Mode=TwoWay}”>调节字体大小</TextBlock>
示例二修改了Binding对象的Mode属性,更改为TwoWay双向绑定,即使用后台代码直接修改TextBlock的FontSize属性,也会通知Slider的Value属性。
Mode属性的枚举值
OneWay:当源属性变化时更新目标属性
TwoWay:当源属性变化时更新目标属性,并且当目标属性变化时更新源属性
还有三种绑定模式:OneTime、OneWayToSource、Default
标签:
原文地址:http://www.cnblogs.com/zhkai/p/4832084.html