在WPF中它的绑定模式(mode)是枚举的枚举值一共有5个
1、 OneWey:从源的改变更新目标的属性
2、 TwoWey:源与目标相互改变
3、 OneTime:只根据源来设置目标,以后都不会改变
4、 OneWeyToSource:目标的改变使源发生变化
5、 Default:可以单向亦可双向,是靠被指定的源或目标是否有get或set指定,所以绑定的话是需要选择上面4个中的一个模式进行绑定,根据所需来选择,不选则默认为Default
或者
OneWey:source影响着target,但是target却影响不了source
OneWeyToSource:target影响着source,而source却影响不到target
TwoWey:source与target相互影响
OneTime:在OneWey的基础上延伸了一个OneTime,仅绑定一次
下面以一个进度条来举个实例
进度条源码:
下面是其他三种绑定方式
<Label Canvas.Left="41" Canvas.Top="160" Content="OneWauSource" Height="28" Name="label2"/>
<TextBox Canvas.Left="165" Canvas.Top="160" Height="23" Width="120"
Text="{Binding ElementName=scrollBar1,Path=Value,Mode=OneWayToSource}"
Name="textBox2"/>
<!--TwoWey-->
<Label Canvas.Left="41" Canvas.Top="202" Content="TwoWay" Height="28" Name="label3"/>
<TextBox Canvas.Left="165" Canvas.Top="202" Height="23" Width="120"
Text="{Binding ElementName=scrollBar1,Path=Value,Mode=TwoWay}"
Name="textBox3"/>
<!--OneTime-->
<Label Canvas.Left="41" Canvas.Top="231" Content="OneTime" Height="28" Name="label4"/>
<TextBox Canvas.Left="165" Canvas.Top="231" Height="23" Width="120" Text="{Binding ElementName=scrollBar1,Path=Value,Mode=OneTime}" Name="textBox4"/>

从图中可看出OneWey和TwoWey是会随着进度条的的改变而改变的
而OneWeyToSource 却没有发生任何变化,当OneWeyToSource的值发生变化时,进度条也会随之变化
TwoWey是会随着进度条改变而改变,同时也会改变进度条的状态

而OneTime是只触发一次,因为已经设置了进度条的默认值为1,在启动时便已经触发了一次,之后便不会有任何的变化
本文详细介绍了WPF中的五种数据绑定模式:OneWay、TwoWay、OneTime、OneWayToSource和Default。OneWay模式仅从源更新目标,TwoWay则实现双向同步,OneTime只绑定一次,OneWayToSource则使目标改变源。通过一个进度条的实例演示了各种模式的效果,展示了不同模式下源和目标属性如何交互。

1524

被折叠的 条评论
为什么被折叠?



