WPF绑定模式

WPF支持OneWay,TwoWay,OneTime,Default和OneWayToSource等多种绑定模式

  • 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。

  • OneWay 仅当源属性发生更改时更新目标属性。

  • OneTime 仅当应用程序启动时或 DataContext 进行更改时更新目标属性。

  • OneWayToSource 在目标属性更改时更新源属性。

  • Default:使用目标属性的默认 Mode 值。

    下面的例子,展示了这几种绑定模式的区别:

    复制代码
    代码
    < Window  x:Class ="WPF_Started.Controls.DataBinding.BindingMode"
            xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
            Title
    ="BindingMode"  Height ="400"  Width ="300" >
        
    < StackPanel >
            
    < ScrollBar  Name ="scroll"  Orientation ="Horizontal"  Margin ="20"  Maximum ="100"  LargeChange ="10"  SmallChange ="1"   />
            
    < Label  Content ="OneWay:"  Height ="30"   />
            
    < TextBox  Name ="scrollValue"  Height ="20"  Width ="200"  HorizontalAlignment ="Center"  
                     Text
    =" {Binding ElementName=scroll, Path=Value, Mode=OneWay} "   />

            
    < Label  Content ="TwoWay:"  Height ="30"   />
            
    < TextBox  Name ="scrollValueTwoWay"  Height ="20"  Width ="200"  HorizontalAlignment ="Center"  
                     Text
    =" {Binding ElementName=scroll, Path=Value, Mode=TwoWay} "   />

            
    < Label  Content ="OneTime:"  Height ="30"   />
            
    < TextBox  Name ="scrollValueOneTime"  Height ="20"  Width ="200"  HorizontalAlignment ="Center"  
                     Text
    =" {Binding ElementName=scroll, Path=Value, Mode=OneTime} "   />

            
    < Label  Content ="OneWayToSource:"  Height ="30"   />
            
    < TextBox  Name ="scrollValueOneWayToSource"  Height ="20"  Width ="200"  HorizontalAlignment ="Center"  
                     Text
    =" {Binding ElementName=scroll, Path=Value, Mode=OneWayToSource} "   />

            
    < Label  Content ="Default:"  Height ="30"   />
            
    < TextBox  Name ="scrollValueDefault"  Height ="20"  Width ="200"  HorizontalAlignment ="Center"  
                     Text
    =" {Binding ElementName=scroll, Path=Value, Mode=Default} "   />
        
    </ StackPanel >
    </ Window >
    复制代码

     




    运行结果显示,OneWay,TwoWay,Default模式下TextBox中的值随着滑块的位置而变化。OneTime模式下总是滑块的初始值0,这种模式下TextBox的值取决于ScrollBar的初始值。

    OneWayToSource模式下,在TextBox中输入20,滑动条滑块会自动滑倒20的位置,但当滑动条继续滑动时候,该模式下TextBox的值并不随着滑动条的滑动而改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值