WPF绑定模式

 

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

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

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

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

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

  • Default模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay.

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

 

<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的值并不随着滑动条的滑动而改变。

 

转自http://www.cnblogs.com/zjz008/archive/2010/05/26/1744802.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值