[ADO.NET] 如何使用 資料繫結 / Data Binding
1.只要有實作IList、IBindingList或IEditableObject,都可以使用資料繫結。
2..Net有許多的類別也都實作了IList,例如System.Array,以及集合類別的物件。
3.在資料繫結的最上層管理是BindingContext物件,主要是管理BindingManagerBase物件所組成的集合,有Data Source的控制項都會有一個BindingManagerBase。
4.程式中無法直接建立BindingManagerBase,只能使用CurrencyManager或PropertyManager。
5.CurrencyManager可以瀏覽物件並管理繫結,每一個 Data Source 都有一個對應的CurrencyManager;CurrencyManager繼承BindingManagerBase來的。
6.控制項都有一個DataBinding的屬性,包含Binding物件。
如何手動建立控制項的資料繫結
Step1.開啟新專案→拖曳一個TextBox1、DataGridView1、DataSet1、EmployeesTableAdapter1控制項至Form1。
Step2.在DataBinding屬性的Text屬性,繫結至Form1 List執行個體的Title欄位,如下圖。
Step3.DataGridView1的DataSource屬性選擇Form1 List執行個體的DataSet1,如下圖。
Step4.DataGridView1的DataMember屬性選擇Employees,如下圖。
Step5.在Load事件加入以下程式
Me.EmployeesTableAdapter1.Fill(Me.NorthwindDataSet1.Employees) End Sub
這樣就完成了手動的資料繫結,下圖為演練結果。
如何使用CurrencyManager管理
Step1.宣告全欲變數 cm 並將 BindingContext 帶入cm(要轉型)
VB
Dim cm As CurrencyManager
cm = CType(Me.BindingContext(NorthwindDataSet1, "Employees"), CurrencyManager)
Step2.拉四個Button,Text屬性分別為,第一筆、下一筆、上一筆、最後一筆,並加入以下程式碼
cm.Position = 0 '代表第一筆
End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cm.Position -= 1 '代表上一筆
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
cm.Position += 1 '代表下一筆
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
cm.Position = cm.Count - 1 '代表最後一筆
End Sub
7.範例下載:(C#操作方式一樣就不寫了)
VB_DataBinding.rar
8.以下是利用ArrayList Binding的 實例
Binding an ArrayList with DataGrid Control
Binding to Array and ArrayList
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET