WinForm中的很多控件,如Label、TextBox等都包含DataBindings属性,其类型为ControlBindingsCollection,是Binding类的集合。Binding类代表某对象属性值和某控件属性值之间的简单绑定。如可以将TextBox的Text属性值绑定到Label的Text属性值,这样,当TextBox中的文本被修改的时候,Label的文本也会及时进行修改,如下面的代码所示:

label1.DataBindings.Add("Text", textBox1, "Text");

Binding类除了可以将对象的属性绑定到控件的属性之外,还可以将对象列表中当前对象的属性值绑定到控件的属性。
当使用Binding的构造函数创建实例时,必须指定三项内容:
  • 要绑定到的控件属性的名称
  • 数据源
  • 数据源中解析为列表或属性的导航路径
其中,数据源可以为:
  • 实现 IBindingList 或 ITypedList 的任何类。包括:DataSet、DataTable、DataView 或 DataViewManager。
  • 实现 IList 的任意索引集合类。(必须在创建 Binding 之前创建和填充该集合,并且列表中的所有对象必须为同一类型,否则将引发异常)
  • 强类型对象的强类型 IList。

导航路径可以为空字符串(默认将调用数据源的ToString()方法)、单个属性名称或用点分隔的名称层次结构。

名称层次结构是什么意思呢?比如我们有一个Company类,它包含Name属性和Employees属性(公司所有Employee的集合),而Employee类又包含Name属性。那么,如果要将Company的Name属性绑定到TextBox控件的Text属性,代码为:

TextBox1.DataBindings.Add("Text", company, "Name");

如果要绑定Employees的Name属性,代码为:

TextBox1.DataBindings.Add("Text", company, "Employees.Name");

Employess.Name即为用点分隔的名称层次结构。在这里,Employees为一个集合,将Employees.Name绑定到TextBox会出现什么情况呢?测试后可知,TextBox将显示Employees集合中第一个Employee的Name属性。

Binding类包含两个十分重要的事件:Format和Parse,可以创建自定义的格式来显示数据。具体可以参考MSDN。

问题:如果将TextBox2的Text属性作为数据源绑定到TextBox1的Text属性,那么修改TextBox1的Text之后,将焦点移动到TextBox2上,其Text值就变为TextBox1的Text值了。这一点如何解决,我还没有找到比较好的方法,用Parse事件似乎也不行。希望各位朋友们指教。

用DataBindings属性绑定控件的值相关推荐

  1. html获取页面控件,HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值

    <转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定na ...

  2. input绑定的jedate日期控件的值改变时触发事件问题

    一.input绑定的jedate日期控件的值改变时触发事件问题 一般input中值发生改变,用onchange 就可以触发事件,但我现用jedate日期控,选中日期后,发现onchange无效. 后经 ...

  3. BCGControlBar Pro for MFC v13.3现已发布:着重改进图表、属性/编辑控件等,打造全面、易上手的MFC库

    亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC v31.3正式发布啦! BCGControlBar Pro for MFC v31.3 ...

  4. 2.easyui 控件取值方式

    2019独角兽企业重金招聘Python工程师标准>>> 说起这个easyui,放进去简单,但是要怎么 联动呢,对于哥这种没有经验,没有nz,没有勤劳的三无..哈哈,研究了好久. 先说 ...

  5. javascript获取asp.net服务器端控件的值(2009-10-31 15:24:26)转载标签:杂谈 分类:技术分类

    javascript获取asp.net服务器端控件的值 (2009-10-31 15:24:26) 转载 标签: 杂谈 分类:技术分类 代码如下: <%@ Page Language=" ...

  6. 后台如何通过Request取得多个含有相同name的控件的值?

    在Asp.net开发中,所有html控件的值都是可以在服务器端用后台代码的Request[name]来获取其值的.但如果有多个相同name的Html控件提交到后台,怎么分别取各个控件的值呢?而多数情况 ...

  7. jquery-文档操作-标签取值-输入控件取值与赋值

    html 文本 值 获取标签包裹的内容 dom的属性 jquery的方法 演练 小结 dom对象,jquery对象,取值方式的对等 对象 纯文本 html文本 dom innerText innerH ...

  8. javascript获取asp.net服务器端控件的值

    代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...

  9. 推荐分享一个自定义绑定控件(附源码)

    在asp.net中,对于一个以数据处理为主的UI层,我们往往需要写很多的代码去实现数据的绑定,当然我们也需要费一点心思从控件上去收集数据. 下面,我分享一个自定义控件来实现双向绑定. 一.基于控件ID ...

最新文章

  1. mysql 分号 存储过程_MySql 存储过程
  2. Markdown拾遗
  3. IT项目管理需要注意的细节
  4. 记一个简单的保护if 的sh脚本
  5. 索引原理及项目中如何使用索引实例分析
  6. devops 工具_衡量DevOps成功的13种工具
  7. C语言文件系统模拟器
  8. php openssl des ecb,php7.2 des-ede3-ecb加密报错:openssl_encrypt():Unknown cipher algorithm 落叶随风博客...
  9. pytorch学习笔记(十四):实战Kaggle比赛——房价预测
  10. 考勤系统(源代码+论文+答辩PPT+指导书)
  11. Mac OS X上编写 ASP.NET vNext(一)KRE环境搭建
  12. 【案例分享】利用Python识别图片中的文字
  13. R plot图片背景设置为透明_R语言(绘图入门)
  14. Leetcode995 Minimum Number of K Consecutive Bit Flips解决方案
  15. latex 输入下划线_
  16. 计算机屏幕方向变化,知识:如何切换笔记本电脑屏幕的方向_计算机的基本知识_IT /计算机_信息...
  17. 《真三国无双5》全人研究完整版
  18. Oracle Smart Flash 新特性性能测试说明
  19. <网络概述>——《计算机网络》
  20. c++继承---私有继承

热门文章

  1. Java实用教程笔记 Java入门
  2. 【 MATLAB 】find 函数的使用(线性索引)
  3. star不代表一切。React:嘿Vue和Angular!就问你们怕不怕!!
  4. CART决策树(分类回归树)分析及应用建模
  5. 老李分享:jvm垃圾回收
  6. Mysql不需要身份验证便可远程连接故障
  7. 【转】Usage of sendBroadcast()
  8. 经典DP 嵌套矩形 (南洋理工ACM—16)
  9. [转]理解“Future”
  10. 剑破冰山—Oracle开发艺术 书评(by ora-600)