數據綁定(翻譯)
2024-07-21 02:23:52
供稿:網友
中文信息:
數據綁定和控件的介紹
當微軟公司開發出窗體控件和網頁控件時,它就拼命的實現數據綁定.當時還是使用的是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屬性來實現的.我們不需做其他的數據綁定操作,系統通過它的屬性自動取得數據.
網站運營seo文章大全提供全面的站長運營經驗及seo技術!