【转】WPF绑定模式
源地址:http://www.cnblogs.com/zjz008/archive/2010/05/26/1744802.html
http://blog.csdn.net/haylhf/article/details/7628979
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的值并不随着滑动条的滑动而改变。
【转】WPF绑定模式的更多相关文章
- WPF的5种绑定模式(mode)
WPF的绑定模式(mode)是枚举的 枚举值共有5个 1:OneWay(源变就更新目标属性) 2:TwoWay(源变就更新目标并且目标变就更新源) 3:OneTime(只根据源来设置目标,以后都不会变 ...
- WPF快速入门系列(4)——深入解析WPF绑定
一.引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能.WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信 ...
- 【转】【WPF】WPF绑定用法
一.简介 为了后面行文顺利,在进入正文之前,我们首先对本文所涉及到的绑定知识进行简单地介绍.该节包含绑定的基本组成以及构建方式. WPF中的绑定完成了绑定源和绑定目标的联动.一个绑定常常由四部分组成: ...
- WPF - 绑定及惯用法(一)
写在前面:这仍然是一些没有经过严格审阅的文字.虽然我的确执行了初稿.复稿以及审阅等一系列用以保证文章质量的方法,但是仍然担心其中是否有错误.希望您能帮助指出,以在下一次我在版本更新时进行修正.所有的错 ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...
- WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制
原文:WPF MVVM模式中,通过命令实现窗体拖动.跳转以及显隐控制 在WPF中使用MVVM模式,可以让我们的程序实现界面与功能的分离,方便开发,易于维护.但是,很多初学者会在使用MVVM的过程中遇到 ...
- WPF绑定功能常用属性介绍
1.Mode 绑定中数据流的方向(enum BindingMode) 目标属性指的是控件的属性 (1)TwoWay 更改源属性或目标属性时,会自动更新另一方.适用于可编辑窗体 例:TextBox (2 ...
- cxGrid 增加序号 (非数据库绑定模式) (测试通过)
cxGrid 增加序号 (非数据库绑定模式) ----------------------------------- 1. 选在 adoQuery 控件 , 鼠标右键菜单中 选择 Fields Edi ...
- WPF MVVM模式的一些理解
/*本文转自 http://www.cnblogs.com/sirkevin/archive/2012/11/28/2793471.html */ 使用WPF+Mvvm开发一年多,期间由于对Mvvm模 ...
随机推荐
- sqlsever实现更改字段名
新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default '默认值' null ...
- python基础(三)python数据类型
一.数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需 ...
- 如何修改eclipse下注释的颜色
修改注释颜色:window -- preferences -- java --editor --syntax coloring -- comments 中的前两个就是修改注释颜色的.点击右边的colo ...
- HBase 架构与工作原理5 - Region 的部分特性
本文系转载,如有侵权,请联系我:likui0913@gmail.com Region Region 是表格可用性和分布的基本元素,由列族(Column Family)构成的 Store 组成.对象的层 ...
- [转帖]go 命令
golang笔记——命令 https://www.cnblogs.com/tianyajuanke/p/5196436.html 1.GO命令一览 GO提供了很多命令,包括打包.格式化代码.文档生成 ...
- Longest Substring with At Most Two Distinct
Given a string, find the length of the longest substring T that contains at most 2 distinct characte ...
- git工具的使用总结
Git的使用 进入一个新的公司或者参入一个新的项目后,可能的第一步就是获取代码仓库的代码.公司内部一般放到代码仓库(下面主要以gitHub.Windows平台为例)的代码都经过加密认证的. 如何将Gi ...
- <script>document.write(location.href)</script>
<script>document.write(location.href)</script> 什么意思?
- cnblog博客CSS定制
一.页面定制CSS #home { margin: 0 auto; width: 80%;/*原始65*/ min-width: 980px;/*页面顶部的宽度*/ background-color: ...
- jQuery--Excel插件js-xlsx
参考博客:http://www.jianshu.com/p/74d405940305 github地址:SheetJS / js-xlsx js引入 <script type="tex ...