演练:创建支持复杂数据绑定的用户控件

更新:2007 年 11 月

在 Windows 应用程序的窗体上显示数据时,您可以从“工具箱”中选择现有的控件,而当标准控件无法提供应用程序所要求的功能时,您还可以创作自定义控件。此演练显示如何创建实现 ComplexBindingPropertiesAttribute 的控件。实现 ComplexBindingPropertiesAttribute 的控件包含可以绑定到数据的 DataSource 和 DataMember 属性。此类控件类似于 DataGridViewListBox

有关控件创作的更多信息,请参见 设计时开发 Windows 窗体控件

创建用于数据绑定方案的控件时,您需要实现以下数据绑定属性之一:

数据绑定属性的用法

在简单控件上实现 DefaultBindingPropertyAttribute,如 TextBox,此类控件用于显示数据的单个列(或属性)。有关更多信息,请参见 演练:创建支持简单数据绑定的用户控件

在控件上实现 ComplexBindingPropertiesAttribute,如 DataGridView,此类控件用于显示数据列表(或表)。(本演练页面描述了此过程)。

在控件上实现 LookupBindingPropertiesAttribute,如 ComboBox,此类控件用于显示数据列表(或表),也需要显示数据的单个列或属性。有关更多信息,请参见 演练:创建支持查找数据绑定的用户控件

本演练创建显示表中多行数据的复杂控件。本示例使用源自 Northwind 示例数据库的 Customers 表。复杂用户控件将会在自定义控件中的 DataGridView 中显示 Customers 表。

通过此演练,您将学会如何执行以下任务:

  • 创建新的“Windows 应用程序”。

  • 向您的项目添加新的“用户控件”。

  • 以可视方式设计用户控件。

  • 实现 ComplexBindingProperty 属性。

  • 使用 数据源配置向导 创建数据集。

  • “数据源”窗口 中设置“Customers”表,以使用新的复杂控件。

  • 通过将新控件从“数据源窗口”拖到“Form1”添加新控件。

先决条件

若要完成本演练,您需要:

创建 Windows 应用程序

第一步是创建“Windows 应用程序”。

创建新的 Windows 项目

  1. 在 Visual Studio 中,从“文件”菜单创建一个新的“项目”。

  2. 将项目命名为 ComplexControlWalkthrough。

  3. 选择“Windows 应用程序”,再单击“确定”。有关更多信息,请参见创建基于 Windows 的应用程序

    则创建了 ComplexControlWalkthrough 项目并将其添加到“解决方案资源管理器”中。

向项目中添加用户控件

由于此演练是从“用户控件”创建复杂的可绑定数据控件,所以您必须向项目中添加“用户控件”项。

向项目中添加用户控件

  1. 从“项目”菜单中选择“添加用户控件”。

  2. 在“名称”区域中键入 ComplexDataGridView,再单击“添加”。

    ComplexDataGridView 控件即被添加到“解决方案资源管理器”中,并在设计器中打开。

设计 ComplexDataGridView 控件

此步骤将 DataGridView 添加到该用户控件。

设计 ComplexDataGridView 控件

  • DataGridView 从“工具箱”拖到该用户控件的设计图面上。

添加所需的数据绑定属性

对于支持数据绑定的复杂控件,您可以实现 ComplexBindingPropertiesAttribute

实现 ComplexBindingProperties 属性

  1. 将 ComplexDataGridView 控件切换到“代码”视图。(在“视图”菜单上选择“代码”。)

  2. 将 ComplexDataGridView 中的代码替换为下面的内容:

    <System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")> _
    Public Class ComplexDataGridView
    
        Public Property DataSource() As Object
            Get
                Return DataGridView1.DataSource
            End Get
            Set(ByVal value As Object)
                DataGridView1.DataSource = value
            End Set
        End Property
    
        Public Property DataMember() As String
            Get
                Return DataGridView1.DataMember
            End Get
            Set(ByVal value As String)
                DataGridView1.DataMember = value
            End Set
        End Property
    End Class
    
    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
        public partial class ComplexDataGridView : UserControl
        {
            public object DataSource
            {
                get{ return dataGridView1.DataSource; }
                set{ dataGridView1.DataSource = value; }
            }
    
            public string DataMember
            {
                get{ return dataGridView1.DataMember; }
                set{ dataGridView1.DataMember = value; }
            }
    
            public ComplexDataGridView()
            {
                InitializeComponent();
            }
        }
    }
    
  3. 从“生成”菜单中选择“生成解决方案”。

从数据库创建数据源

此步骤根据 Northwind 示例数据库中的 Customers 表,使用“数据源配置向导”创建数据源。必须具有访问 Northwind 示例数据库的权限才能创建连接。有关设置 Northwind 示例数据库的信息,请参见 如何:安装示例数据库

创建数据源

  1. 在“数据”菜单上单击“显示数据源”。

  2. 在“数据源”窗口中,选择“添加新数据源”,启动“数据源配置向导”。

  3. 在“选择数据源类型”页面上选择“数据库”,再单击“下一步”。

  4. 在“选择您的数据连接”页面上进行以下某一操作:

    • 如果下拉列表中包含到 Northwind 示例数据库的数据连接,请选中该连接。

      - 或 -

    • 选择“新建连接”,启动“添加/修改连接”对话框。有关更多信息,请参见“添加/修改连接”对话框(通用)

  5. 如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。

  6. 在“将连接字符串保存到应用程序配置文件”页面上单击“下一步”。

  7. 在“选择数据库对象”页面上展开“表”节点。

  8. 选择 Customers 表,再单击“完成”。

    “NorthwindDataSet”被添加到您的项目中,并且“数据源”窗口中出现 Customers 表。

设置 Customers 表以使用 ComplexDataGridView 控件

在“数据源”窗口中,您可以先设置要创建的控件,然后再将项拖动到窗体上。

设置 Customers 表以绑定到 ComplexDataGridView 控件

  1. 在设计器中打开“Form1”。

  2. 在“数据源”窗口中展开“Customers”节点。

  3. 单击“Customers”节点上的下拉箭头并选择“自定义”。

  4. 在“数据 UI 自定义选项”对话框中,从“关联的控件”列表中选择“ComplexDataGridView”。

  5. 单击 Customers 表上的下拉箭头并从控件列表中选择“ComplexDataGridView”。

向窗体添加控件

可以通过将某些项从“数据源”窗口拖到您的窗体上来创建数据绑定控件。

在窗体上创建数据绑定控件

  • 将主“Customers”节点从“数据源”窗口中拖到窗体上,并验证是否使用“ComplexDataGridView”控件显示表中的数据。

运行应用程序

运行应用程序

  • 按 F5 运行应用程序。

后续步骤

根据应用程序的要求,在创建了支持数据绑定的控件后,还可能需要执行一些步骤。接下来的一些常见步骤包括:

请参见

任务

如何:设置从“数据源”窗口中拖动时要创建的控件

概念

“显示数据”概述

其他资源

Windows 窗体控件

连接到 Visual Studio 中的数据

准备应用程序以接收数据

将数据获取到应用程序

在 Windows 应用程序中的窗体上显示数据

在应用程序中编辑数据

验证数据

保存数据