BindingSource 组件概述

BindingSource 组件旨在简化将控件绑定到基础数据源的过程。 该 BindingSource 组件既充当管道,又充当要绑定到的其他控件的数据源。 它提供表单数据连接的抽象化,同时将命令传递到底层数据列表。 此外,还可以将数据直接添加到其中,使组件本身充当数据源。

BindingSource 组件作为中介

BindingSource 组件充当窗体上某些或所有控件的数据源。 在 Visual Studio 中,可以通过DataBindings属性(可从“属性”窗口访问)将BindingSource绑定到控件。 另请参阅 如何:使用设计器将 Windows 窗体控件与 BindingSource 组件绑定

可以将组件绑定到 BindingSource 简单数据源,例如对象的单个属性或基本集合(如 ArrayList数据库表)和复杂的数据源。 该 BindingSource 组件充当提供绑定和货币管理服务的中介。 在设计时或运行时,可以将 BindingSource 组件绑定到复杂的数据源,并将其 DataSource 属性设置为数据库,将 DataMember 属性设置为表。 下图展示了 BindingSource 组件在现有数据绑定架构中的角色和位置。

绑定源和数据绑定体系结构

注释

在设计时,某些操作(例如将数据库表从数据窗口拖动到空白窗体)将会创建 BindingSource 组件,并将其绑定到底层数据源,同时在一个操作中添加数据相关控件。 另请参阅将 Windows 窗体控件绑定到 Visual Studio 中的数据

BindingSource 组件作为数据源

如果在不首先指定要绑定到的列表的情况下开始向组件添加项 BindingSource ,该组件将像列表样式数据源一样作并接受这些添加的项。

此外,还可以编写代码,以便 AddingNew 通过事件提供自定义的“AddNew”功能,在将项添加到列表中之前调用该方法时 AddNew 引发。 有关详细信息,请参阅 BindingSource 组件体系结构

对于需要导航窗体上数据的用户,该 BindingNavigator 组件使你能够与 BindingSource 组件协调导航和作数据。 有关详细信息,请参阅 BindingNavigator 控件

数据操作

BindingSource:充当其所有绑定的一种CurrencyManager,因此,可以提供对数据源的货币和位置信息的访问权限。 下表显示了组件 BindingSource 提供以访问和操纵基础数据的成员。

成员 DESCRIPTION
Current 属性 获取数据源的当前项。
Position 属性 获取或设置基础列表中的当前位置。
List 属性 获取 DataSourceDataMember 评估结果的列表。 如果未 DataMember 设置,则返回由 DataSource.
Insert 方法 在指定索引处将项目插入列表中。
RemoveCurrent 方法 从列表中删除当前项。
EndEdit 方法 对基础数据源应用挂起的更改。
CancelEdit 方法 取消当前编辑操作。
AddNew 方法 将新项添加到基础列表。 如果数据源实现 IBindingList 并返回事件中的 AddingNew 项,请添加此项。 否则,请求将传递给列表 AddNew 的方法。 如果基础列表不是一个 IBindingList,则通过其公共无参数构造函数自动创建该项。

排序和筛选

通常,应使用数据源的有序或筛选视图。 下表显示了组件数据源提供的成员 BindingSource

成员 DESCRIPTION
Sort 属性 如果数据源是 IBindingList,则获取或设置用于排序及排序顺序信息的列名。 如果数据源是IBindingListView并且支持高级排序,则获取用于排序的多个列名和排序顺序信息。
Filter 属性 如果IBindingListView是一个数据源,则获取或设置用于筛选查看哪些行的过滤表达式。

另请参阅