如果已经阅读了前面有关创建类的内容,那么现在您就应该知道,类是一个封装了数据和代码的对象,而类的属性就是描述对象的数据。而且还知道可以使用属性过程或者公用属性来显露那些属性所表示的数据。
一切顺利──到目前为止,所有示例都已经处理过临时的数据,即在运行时被创建和使用的数据。对于许多程序来说,这可能就是用户所需要的全部东西,但如果用户需要在过程之间存储数据、或者利用已存在于用户程序之外的数据,那该怎么办呢?为了处理外部数据源,用户需要使自己的类成为数据识别类。
数据识别类可分为两种──数据使用者和数据源。类模块有两种设计时属性,即 DataBindingBehavior 和 DataSourceBehavior,它们定义了某个类是如何和外部数据交互作用的。BindingCollection 对象被用来将数据识别类绑定到控件上,或者互相绑定。
数据源是一个从外部源提供数据的类,这些数据将被其他对象所使用的。Data控件实际上是一个作为数据源的类的实例,但是,已被设置为数据源的类比起一个Data控件来功能要强大的多。与Data控件不同,数据识别类不是必须有可视的外在表示,也不局限于某个特定的数据接口──如 Data Access Objects (DAO) 或者 Remote Data Objects (RDO)。事实上,数据识别类可以作为任何类型数据的数据源,包括传统的 ODBC 源、ActiveX Data Objects (ADO),或者任何 OLE DB 提供程序。
DataSourceBehavior 属性决定了某个类是否可以作为数据源。将 DataSourceBehavior 设置为 1 (vbDataSource),则类就可以作为其他对象的数据源。
简单说来,数据使用者是这样一个类──它可被绑定到某个外部数据源上,在很大程度上就象TextBox控件可以被绑定到Data控件上一样。在Visual Basic的早期版本中,控件是唯一可以被绑定到数据源上的对象。设置一个数据识别类为数据使用者,允许您将任何对象绑定到被设置为数据源的类所创建的任何对象上去。
DataBindingBehavior属性允许类绑定到外部数据。设置该属性为 1 (vbSimpleBound),则该类所创建的对象将被绑定到外部数据源中的某个单个数据字段。将DataBindingBehavior 设置为 2 (vbComplexBound),该类将被绑定到外部数据源的一行数据上。可以这样想──如果您的对象是控件,那么一个 TextBox 控件将是一个简单绑定,而一个网格控件将是一个复杂绑定。
就象您需要通过Data控件把一个控件绑定到某个数据库上一样,数据识别类需要一个中心对象将它们绑定到一起。这个对象就是 BindingCollection 对象。顾名思义,BindingCollection 是某个数据源和一个或多个数据使用者之间的绑定的集合。
要使用 BindingCollection 对象,您必须首先添加对 Microsoft Data Binding Collection 的引用,方法是在“工程”菜单上的“引用”对话框中选择之。对于任何一个对象,需要在运行时创建 BindingCollection 对象的一个实例。
BindingCollection 对象的 DataSource 属性是用来指定将提供数据的对象的。该对象必须是一个类或者UserControl,而且其DataSourceBehavior属性要设置为vbDataSource。
一旦 BindingCollection 已被实例化,而且设置了DataSource,就可以使用 Add 方法来定义绑定关系了。Add 方法有三个必需的参数:使用者对象名、被绑定到源的对象的属性,以及将被绑定到该属性的源中的字段。您可以将多个绑定添加到 BindingCollection 中,方法是重复使用Add方法,可以使用Remove方法删除一个绑定。
详细信息 关于一步一步创建数据识别类的示例,请参阅“创建数据源”和“创建数据使用者”。