数据绑定和控件的介绍

来源:互联网 发布:淘宝刀具刀尖角度 编辑:程序博客网 时间:2024/06/16 00:34
数据绑定和控件的介绍


当微软公司开发出窗体控件和网页控件时,它就拼命的实现数据绑定.当时还是使用的是vb,他们就进行了大篇幅的功能程序编辑.


最有效的数据绑定不是我们说的dataset,而是对象,结构和对象集.数据绑定有个显著的特点:网页中实现数据绑定的控件,我们不要对它进行其他的操作.数据绑定后只有读的操作,没其他的操作,也就是说,控件把数据源的信息拿过了,只是用用的,不能操作.而我们在建其他的对象或UI时,不需要关心它,而它的操作是一目了然的.


WINDOWS窗体控件数据绑定可以读和写,而且有的操作更复杂.这样一来,这些数据从数据库中调出,并在我们的UI控件中显示,一旦UI控件的数据改变,数据库中的数据也随着它改变,当然这些操作不需要我们来完成,不过数据的更改难免会让我们写更多的代码.由于上面的特点,我们可以把它的这些特点用到我们的企业和类集里去,这些特点包括:


1.拥有UI等数据的修改.


2.可以使的DATAGRID数据进行正确的绑定.


3.在DATAGRID中子对象可以进行编辑.


4.在DATAGRID中可以动态的增加或删除子对象.


对于一个简单的对象,当我们修改正确的数据时,我可以通过事件来完成对窗体数据的绑定.


通过这些事件,我们可以使UI的数据随我们的修改而在任何时候进行更新.


在UI中一旦其正确的规则被加入的数据破坏,那我们必须知道如何去修改.同样使用不确当的事件来绑定数据,会使绑定出错.


另外,在这里我们还有许多可选择的特点可以用.例如,DATAGRID就是一个常用的绑定控件.件通过正确的使用我们的集,我们可以使DATAGRID控件更加的自能化.


我们可以一起使用IbindingList 和DATAGRID ,那样会更方便.


最后在集使用当中有着比较显著的特点,我们称作为子对象.子对象可以使用IEDITABLEOBJECT使的DATAGRID在数据编辑上更加的方便.当有无效数据的时候,子对象可以使用IDATAERRINFO,从而使DATAGRID对出错的地方用下画线标出来.


总之,我们只需要写一点点的代码就可以使DATAGRID的优点发挥的淋漓尽致.


举例一个窗口绑定的例子:


一个窗体上的控件的属性绑定不是复杂的,举个例子,看看下面的简单的order类: 
Public Class Order 
Private mID As String = "" 
Private mCustomer As String = "" 
Public Property ID() As String 
Get 
Return mID 
End Get 
Set(ByVal Value As String) 
mID = Value 
End Set 
End Property 
Public Property Customer() As String 
Get 
Return mCustomer 
End Get 
Set(ByVal Value As String) 
mCustomer = Value 
End Set 
End Property 
End Class 
这里的比较特殊的代码是:


Private mID As String = "" 
Private mCustomer As String = "" 
注意在这里变量的初始化是没有值的,在Visual Basic .NET中当他们声明时就自动初始化了,所以他们不是很特殊.


由于我们不这样做的话,数据绑定就会失败.这表明变量的自动初始化不会发生在数据绑定到对象的时候,没有初始化的变量在绑定数据的时候会抛出例外.


所以变量的声明必须在数据绑定之前,这意味着我们在数据绑定前对变量正确的初始化,会让我避免产生例外


我们建一个窗体,在它load 的时候把数据绑定到它控件的属性上去.




绑定的代码如下:


Private mOrder As Order 
Private Sub OrderEntry_Load(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles MyBase.Load 
mOrder = New Order() 
txtID.DataBindings.Add("Text", mOrder, "ID") 
txtCustomer.DataBindings.Add("Text", mOrder, "Customer") 
End Sub 
事实上每个窗体上的控件都有一个数据绑定的连接.这个连接库包含一系列数据绑定的属性和


数据源的属性.更有趣的是我们从一个数据源绑定几个不同的控件,同样我也可以把多个数据源绑定到不同的控件属性上.


通过简单的数据绑定代码我们就可以创建很多复杂的拥护接口.例如:用上面例子的代码,我们把一个SAVE按钮的enabled 属性绑定到一个business对象的ISVALID属性上.当对象准备保存的时候这个按钮控件对用户来说是有效的.
0 0
原创粉丝点击