[ADO.NET] 如何使用 資料繫結 / Data Binding

[ADO.NET] 如何使用 資料繫結 / Data Binding

1.只要有實作IList、IBindingList或IEditableObject,都可以使用資料繫結。

2..Net有許多的類別也都實作了IList,例如System.Array,以及集合類別的物件。

3.在資料繫結的最上層管理是BindingContext物件,主要是管理BindingManagerBase物件所組成的集合,有Data Source的控制項都會有一個BindingManagerBase。

4.程式中無法直接建立BindingManagerBase,只能使用CurrencyManager或PropertyManager。

快照-2009726104649

5.CurrencyManager可以瀏覽物件並管理繫結,每一個 Data Source 都有一個對應的CurrencyManager;CurrencyManager繼承BindingManagerBase來的。

6.控制項都有一個DataBinding的屬性,包含Binding物件。

 

如何手動建立控制項的資料繫結

Step1.開啟新專案→拖曳一個TextBox1、DataGridView1、DataSet1、EmployeesTableAdapter1控制項至Form1。

Step2.在DataBinding屬性的Text屬性,繫結至Form1 List執行個體的Title欄位,如下圖。

快照-200972611147

 

快照-200972611211

 

 

Step3.DataGridView1的DataSource屬性選擇Form1 List執行個體的DataSet1,如下圖。

快照-2009726111021
快照-200972611948

 

Step4.DataGridView1的DataMember屬性選擇Employees,如下圖。

快照-2009726114554
快照-200972611460

 

 

Step5.在Load事件加入以下程式

Me.EmployeesTableAdapter1.Fill(Me.NorthwindDataSet1.Employees) End Sub 

 

這樣就完成了手動的資料繫結,下圖為演練結果。

快照-2009726122347

 

如何使用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

Image result for microsoft+mvp+logo