Windows 窗体支持的数据源

传统上,在应用程序内使用数据绑定以利用数据库中存储的数据。 使用 Windows 窗体数据绑定功能,可以访问数据库中的数据和其他结构中的数据(如数组和集合),但前提是已满足某些最低要求。

要绑定到的结构

在 Windows 窗体中,可以绑定到广泛的结构,从简单对象(简单绑定)到诸如 ADO.NET 数据表之类的复杂列表(复杂绑定)。 对于简单绑定,Windows 窗体支持绑定到简单对象的公共属性。 基于 Windows 窗体列表的绑定通常要求对象支持 IListIListSource 接口。 另外,如果要通过 BindingSource 组件进行绑定,则可以绑定到支持 IEnumerable 接口的对象。 有关与数据绑定相关的接口的更多信息,请参见 与数据绑定相关的接口

下面的列表演示 Windows 窗体中可绑定到的结构。

  • BindingSource
    BindingSource 是最常见的 Windows 窗体数据源,并充当数据源和 Windows 窗体控件之间的代理。 常规 BindingSource 使用模式如下:将控件绑定到 BindingSource,将 BindingSource 绑定到数据源(例如,ADO.NET 数据表或业务对象)。 BindingSource 提供的服务可启用并提高数据绑定支持级别。 例如,基于 Windows 窗体列表的控件(如 DataGridViewComboBox)不直接支持到 IEnumerable 数据源的绑定,但是,可以通过 BindingSource 由绑定功能启用此方案。 在这种情况下,BindingSource 会将数据源转换为 IList

  • 简单对象
    Windows 窗体支持使用 Binding 类型,将控件属性的数据绑定到对象实例的公共属性。 在使用 BindingSource 时,Windows 窗体还支持将基于列表的控件(如 ListControl)绑定到对象实例。

  • 数组或集合
    若要充当数据源,列表必须实现 IList 接口;它的一个示例将是作为 Array 类的实例的数组。 有关数组的更多信息,请参见如何:创建对象数组 (Visual Basic)

    通常,当创建用于数据绑定的对象的列表时,应当使用 BindingList<T>BindingList<T>IBindingList 接口的一个泛型版本。 IBindingList 接口通过添加双向数据绑定所需的属性、方法和事件来扩展 IList 接口。

  • IEnumerable
    如果要通过 BindingSource 组件进行绑定,则可以将 Windows 窗体控件绑定到仅支持 IEnumerable 接口的数据源。

  • ADO.NET 数据对象
    ADO.NET 提供大量适于绑定到的数据结构。 这些结构在复杂程度和复杂性方面各不相同。

    • DataColumn. DataColumnDataTable 的基本构造块,因为表是由许多列组成的。 每个 DataColumn 都有一个 DataType 属性,此属性确定该列保存的数据种类(例如,描述汽车的表中的汽车组成部分)。 可以将控件(如 TextBox 控件的 Text 属性)简单绑定到数据表内的某列。

    • DataTable. DataTable 是 ADO.NET 中对包含行和列的表的表示形式。 数据表中包含两个集合:DataColumnDataRow,前者表示给定表中的数据列(这会最终确定可在该表中输入的数据种类),后者表示给定表中的数据行。 可以将控件复杂绑定到数据表中包含的信息(例如将 DataGridView 控件绑定到数据表)。 但是,当绑定到 DataTable 时,实际上是绑定到该表的默认视图。

    • DataView. DataView 是可筛选或排序的单个数据表的自定义视图。 数据视图是复杂绑定控件使用的数据“快照”。 可以简单绑定或复杂绑定到数据视图中的数据,但请注意,绑定到的是数据的固定“图片”而不是一个干净的、不断更新的数据源。

    • DataSet. DataSet 是数据库中表、关系和数据约束的集合。 可以简单绑定或复杂绑定到数据集内的数据,但请注意,绑定到的是 DataSet 的默认 DataViewManager(请参见下一个项目符号的内容)。

    • DataViewManager. DataViewManager 是整个 DataView 的自定义视图,它与 DataSet 类似,但其中包括各种关系。 使用 DataViewSettings 集合,可以为给定表的 DataViewManager 具有的任何视图设置默认筛选器和排序选项。

请参见

概念

Windows 窗体数据绑定中的更改通知

数据绑定和 Windows 窗体

其他资源

Windows 窗体数据绑定