利用 ADO.NET,可以创建大量不同的数据结构,以适合应用程序的绑定需要和正在使用的数据。有关在 ADO.NET 中数据绑定的信息,请参见分布式应用程序和数据集成介绍。也可以创建您自己的类来提供数据。这些对象可以提供各种级别的功能和复杂性,从基本的数据绑定,到提供设计时支持、错误检查或者甚至支持对数据本身所做更改的结构化回滚。

下面是接口对象的渐进式列表,从简单之至的到最复杂的,每个对象都比前一个对象提供更多的数据绑定功能。可以在与窗体关联的类内实现这些接口,以启用数据绑定;每种情况都介绍一个所实现接口启用与数据的交互的类。Visual Studio 的快速应用程序开发 (RAD) 数据设计实践工具已经利用了此功能。

IList 接口
实现 <?XML:NAMESPACE PREFIX = MSHelp NS = "http://msdn.microsoft.com/mshelp" /> 接口的类可以是 、 或 。这些中的任何一个都是类型 的项的索引列表。这必须是一列同源类型,因为索引的第一个项确定类型。此类将仅可在运行时用于绑定。

注意   有关实现接口的详细信息,请参见 (Visual Basic) 或 (C# 关键字)。

类型化 IList 接口
这是类型化的 IList 接口的实现(也就是说,不只是对象,而是一类对象,例如经典商业数据库示例中的“Customers”)。Item 属性返回给定类型的项。实现类型化 IList 接口的类只可在运行时用于绑定。

在下面的示例中,自定义类型是 Customers

实现的 IList 和 IComponent 接口
通过实现这两种接口,数据在设计时(它将出现在组件栏中)和运行时都可用于绑定。

注意   虽然当前枚举的数据提供程序知道窗体上的控件对列表所做的更新,但它们不利用在代码中对列表的项所做的更新。如果需要这种更改通知,请使用下面描述的 接口的实现。

IBindingList 接口
实现 接口的类提供了一种更高级别的数据绑定功能。此实现在列表本身更改时(例如,列表中的项的数量增加/减少)和列表项本身更改时(例如,客户列表中的第三项更改 Address 字段)都提供更改通知。

提示   通过设置 属性为 IBindingList 接口启用更改通知,当设置为 true 时,引发一个 事件,指示更改的列表或列表中的项。更改的类型由 ListChanged 事件的 ListChangeType 参数描述。因此,无论何时更新数据模型,也都将更新任何依赖视图。但是,请注意,在列表内包含的对象在更改时必须通知该列表,以便该列表可引发 ListChanged 事件。

IEditableObject 接口
实现 接口的类允许对象控制何时对该对象的更改成为永久的。此实现提供 、 和 方法,这些方法使您得以回滚对该对象所做的更改。

注意   如果未实现 IEditableObject 接口,则无法回滚更改。在决定何种方法适合于要解决的问题时,请记住这一点。

以下简要解释 BeginEditEndEditCancelEdit 方法的功能,以及它们如何通过彼此协作,使对数据所作的更改的可能回滚得以实现。有关 BeginEditEndEditCancelEdit 方法如何工作的更多信息,请参见数据集更新介绍。

  • BeginEdit 方法

    发出开始对一个对象进行编辑的信号。实现此接口的对象将需要存储 BeginEdit 方法调用后的任何更新,这样,如果调用 CancelEdit 方法,则可以放弃这些更新。在数据绑定 Windows 窗体中,可以在单个编辑事务的范围内多次调用此方法(例如,BeginEdit,BeginEdit,EndEdit)。IEditableObject 接口的实现应跟踪是否已经调用了 BeginEdit 并忽略后面对 BeginEdit 的调用。因为可多次调用此方法,所以后面对它的调用应是非破坏性的,这一点很重要;也就是说,后面的 BeginEdit 调用不能销毁已做的更新或更改在第一次调用 BeginEdit 时保存的数据。

  • EndEdit 方法

    如果对象当前处于编辑模式,则将自调用 BeginEdit 后进行的任何更改都推入基础对象中。

  • CancelEdit 方法

    放弃对于对象所做的任何更改。

DataGrid 控件使用数据功能的这种“事务性”注记。

IDataErrorInfo 接口
实现 接口的类使对象得以提供控件可绑定到的自定义错误信息。此实现提供最高级别的数据绑定功能。具体地说,它返回两个字符串:

  • 属性 — 返回常规错误信息文本(例如,“出现错误”)。
  • 属性 — 返回一个包含来自列的特定错误信息的字符串(例如,“State 列中的值无效”)。

    注意   此功能已经在 Windows 窗体 DataGrid 和 ErrorProvider 控件提供的 RAD 设计方案中启用。

与数据绑定相关的接口(转)相关推荐

  1. html与java接口,JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习--Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  2. 免费疫情相关的接口(亲测有效的哟)

    由于疫情的袭来,严重影响了我们的工作以及学习,所以当我们想更加快速有效的了解相关的疫情.我们就需要调用相关的接口来实现这一功能. 网上的免费的接口很多,许多接口用着用着就下架了. 今天我使用的是 &q ...

  3. linux路由相关函数,Linux 路由 学习笔记 之十一 输入、输出路由查找相关的接口函数...

    对于路由功能模块的学习,也已经很长时间了.关于路由项的创建与查找.策略规则相关的创建与查找.路由缓存的创建与查找,都是分开来分析的,没有说明这些模块是如何配合使用的,以及模块之间的联系.本节就分析一下 ...

  4. 音频相关操作接口-C++实现

    音频相关操作接口-C++实现 单声道转换为双声道 32Float格式音频数据转为16bit格式 注意事项 单声道转换为双声道 // 传入数据长度为原始单声道数据的2倍,无需额外申请空间实现自我复制 v ...

  5. 音乐推荐相关API接口

    音乐推荐相关API接口 本文仅为学习记录,资源来自网络,侵删,详细使用方法参照参考链接(原文写的不错),这里仅记录一些使用过程中遇到的问题. 参考1:网易云音乐(Cloudmusic)API 参考2: ...

  6. 【shopify 1】调研出海项目,发现shopify没有java的相关SDK接口,但是找到一个最新2022年6月的Java项目分享了相关代码,使用docker进行环境搭建、编译,并成功启动

    目录 前言 1,关于shopify java调研 2,发现一个新的关于shopify的JavaSDK开源项目是2022年6月发布的 3,使用OAuth2 进行授权的逻辑 4,解决相关问题,解决配置依赖 ...

  7. 新华字典相关API接口

    通过互联网也查询了一些API接口,有些是收费的,有些是免费的,但是免费的还没有找到,收费的都有1天请求接口次数限制.想着自己也弄一个API接口吧,就这.. 中国文化的核心:汉字.成语. 但因能力有限, ...

  8. 游戏思考17:寻路引擎recast和detour学习一(跨平台编译库及相关寻路接口解析)

    文章目录 一.windows安装编译recastnavigation1.5.1 二.linux编译recastnavigation1.5.1 三.背景知识 1)分类 2)navmesh定义 3)编译包 ...

  9. JAVA中parameterized,Java中与泛型相关的接口 之 ParameterizedType

    在阅读本文之前可以先阅读以下三篇,以便对Java中的泛型有一个全局的认识: 简介 ParameterizedType是Type的子接口,表示一个有参数的类型,例如Collection,Map等.但实现 ...

最新文章

  1. 索引使用的好处与坏处(Oracle测试)
  2. Codeforces刷题
  3. java面试题十 string字符串操作
  4. webstorm中配置svn
  5. 《道德经》程序员版第五章
  6. 圆括号匹配c语言代码,求救!!一道关于表达式圆括号匹配的经典题目
  7. 山东省特种设备作业考试系统_山东省特种设备作业人员考试系统使用手册详解.doc...
  8. python selenium 下拉框 页面变化_python-selenium之select下拉框
  9. 最近公共祖先 解题报告
  10. 【事件驱动】【数码管识别】 封装成DLL的函数的梳理
  11. Qt实现带验证码的输入框
  12. EPT DATA数据库能查到1998-2013年工业企业数据库
  13. 《迅雷链精品课》第九课:区块链 P2P 网络
  14. 这学期她选修了英语 计算机 驾驶三门课程,大一英语翻译答案
  15. 巧舟的逆转裁判开发手记
  16. 2019年第十届蓝桥杯真题解析 | 特殊数【Python】
  17. 分享一套永久免费的ChatGPT使用方法
  18. 欢迎各位小伙伴来领取免费的安卓教程
  19. c语言习题---(if语句)
  20. 2021年全球灌装设备收入大约1194.6百万美元,预计2028年达到1604.7百万美元

热门文章

  1. win11亮度调节不见了怎么办 windows亮度调节不见了的解决方法
  2. windows安装docker后启动报错无法下载镜像文件Error with pre-create check: “Get https://github-production-release-ass
  3. mybatis与Spring整合配置文件
  4. 已经发车的票还能取出来吗_网上预订汽车票不知道怎么退票?
  5. winpythonhadoop_win10下配置hadoop2.9(使用python单机运行任务)
  6. python commands用法_python之commands模块(执行Linux Shell命令)
  7. 下载并安装Redis教程
  8. 使用awt制作一个简易加法计算器
  9. svg写入/识别html元素和css样式
  10. linux 查看新增文件夹记录_微信7.0.23测试版,新增查看访客记录,朋友圈内容能折叠?...