数据绑定和 Windows 窗体

更新:2007 年 11 月

在 Windows 窗体中,不仅可以绑定到传统的数据源,还可以绑定到几乎所有包含数据的结构。可以绑定到值的数组,这些值可以在运行时计算、从文件中读取或者从其他控件的值派生。

另外,还可以将任何控件的任何属性绑定到数据源。在传统的数据绑定中,通常将显示属性(例如,TextBox 控件的 Text 属性)绑定到数据源。使用 .NET Framework,还可以选择通过绑定设置其他属性。可以使用绑定来执行下列任务:

  • 设置图像 (Image) 控件的图形。

  • 设置一个或多个控件的背景色。

  • 设置控件的大小。

实质上,数据绑定是一种设置窗体上任何控件的任何运行时可访问属性的自动方法。

数据绑定的类型

Windows 窗体可以利用两种类型的数据绑定:简单绑定和复杂绑定。这两种类型具有不同的优点。

数据绑定的类型

说明

简单数据绑定

将一个控件绑定到单个数据元素(如数据集表的列中的值)的能力。这是用于诸如 TextBoxLabel 之类的控件(通常是只显示单个值的控件)的典型绑定类型。事实上,控件上的任何属性都可以绑定到数据库中的字段。Visual Studio 中对此功能提供了广泛的支持。

有关更多信息,请参见与数据绑定相关的接口如何:在 Windows 窗体中导航数据如何:在 Windows 窗体上创建简单绑定控件与数据绑定相关的接口如何:在 Windows 窗体中导航数据与数据绑定相关的接口如何:在 Windows 窗体中导航数据如何:在 Windows 窗体上创建简单绑定控件与数据绑定相关的接口如何:在 Windows 窗体中导航数据如何:在 Windows 窗体上创建简单绑定控件.

复杂数据绑定

将一个控件绑定到多个数据元素(通常是数据库中的多个记录)的能力。复杂绑定又被称作基于列表的绑定。支持复杂绑定的控件的示例有 DataGridViewListBoxComboBox 控件。有关复杂数据绑定的示例,请参见如何:将 Windows 窗体 ComboBox 控件或 ListBox 控件绑定到数据

BindingSource 组件

为了简化数据绑定,Windows 窗体使您能够将数据源绑定到 BindingSource 组件,然后将控件绑定到 BindingSource。可以在简单绑定方案或复杂绑定方案中使用 BindingSource。在任一情况下,BindingSource 都充当数据源与绑定控件之间的中间组件,并提供更改通知货币管理和其他服务。

使用数据绑定的常见方案

几乎所有的商业应用程序都使用从一种或另一种形式的数据源读取的信息,这通常是通过数据绑定完成的。下面的列表演示一些利用数据绑定作为数据表示和操作方法的最常见方案。

方案

说明

报表

报表提供了一种在打印文档中显示和汇总数据的灵活方式。一种非常常见的情况是创建一份将数据源的选定内容输出到屏幕或打印机的报表。常见的报表包括列表、发票和摘要。这些项通常格式化为列表中的列,在每个列表项下组织子项,但您应当选择最适合数据的布局。

数据输入

输入大量相关数据或提示用户输入信息的一种常用方法是使用数据输入窗体。用户可以使用文本框、选项按钮、下拉列表和复选框输入信息或选择选项。信息随之提交并存储到数据库中,该数据库的结构基于所输入的信息。

主控/详细关系

主控/详细应用程序是一种用来查看相关数据的格式。具体地说,有两个数据表,它们用关系连接起来,在传统的业务示例中,“Customers”表和“Orders”表之间的关系将客户及其各自的订单链接起来。有关用两个 Windows 窗体 DataGridView 控件创建主控/详细应用程序的更多信息,请参见 如何:使用两个 Windows 窗体 DataGridView 控件创建一个主/从窗体

查找表

另一个常见的数据表示/操作方案是表查找。作为大量数据显示的一部分,ComboBox 控件经常用于显示和操作数据。关键在于 ComboBox 控件中显示的数据与写入数据库中的数据不同。例如,如果有一个显示杂货店提供的物品的 ComboBox 控件,则可能想查看产品的名称(面包、牛奶、鸡蛋)。但是,为了便于检索数据库中的信息并使数据库标准化,可能会将给定订单的特定项的信息存储为项编号(#501、#603 等等)。因此,在窗体上 ComboBox 控件中杂货项的“友好名称”和订单中出现的相关项编号之间存在一个隐式连接。这是表查找功能的精髓。

有关更多信息,请参见如何:使用 Windows 窗体 BindingSource 组件创建查找表如何:使用 Windows 窗体 BindingSource 组件创建查找表如何:使用 Windows 窗体 BindingSource 组件创建查找表如何:使用 Windows 窗体 BindingSource 组件创建查找表.

请参见

任务

如何:将 Windows 窗体 DataGrid 控件绑定到数据源

参考

Binding

其他资源

Windows 窗体数据绑定

BindingSource 组件