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

 

利用 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 接口,则无法回滚更改。在决定何种方法适合于要解决的问题时,请记住这一点。

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

  • BeginEdit 方法

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

  • EndEdit 方法

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

  • CancelEdit 方法

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

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

IDataErrorInfo 接口
实现 接口的类使对象得以提供控件可绑定到的自定义错误信息。此实现提供最高级别的数据绑定功能。具体地说,它返回两个字符串:
  • 属性 — 返回常规错误信息文本(例如,“出现错误”)。
  • 属性 — 返回一个包含来自列的特定错误信息的字符串(例如,“State 列中的值无效”)。
    注意   此功能已经在 Windows 窗体 DataGrid 和 ErrorProvider 控件提供的 RAD 设计方案中启用。

转载于:https://www.cnblogs.com/zgqys1980/archive/2007/08/30/876019.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值