資料繫結(翻譯)

來源:互聯網
上載者:User
資料 中文資訊:

           資料繫結和控制項的介紹

當微軟公司開發出表單控制項和網頁控制項時,它就拚命的實現資料繫結.當時還是使用的是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屬性上.當對象準備儲存的時候這個按鈕控制項對使用者來說是有效.

記住這種資料繫結不是直接的,不光是資料從對象顯示到視窗上,而且使用者的對資料的更改是自動返回的.這些都是在使用者瀏覽每個地區的時候發生,例如: 當控制項失去焦點時,我們的使用者改變的TXTID控制項的VALUE的值,這個資料更新到對象上去,這些資料都是通過SET屬性來實現的.我們不需做其他的資料繫結操作,系統通過它的屬性自動取得資料.


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。