Windows Form 支援的資料來源
傳統上,在應用程式中使用資料繫結的目的,是為了利用儲存在資料庫中的資料。 Windows Form 資料繫結允許您存取資料庫的資料,也可以從陣列和集合等其他結構存取資料 (只要您符合某些最低需求)。
可繫結的結構
在 Windows Form 之中,您可以繫結至許多種結構,從簡單的物件 (簡單繫結) 到複雜如 ADO.NET 資料表的清單 (複雜繫結) 都包括在內。 就簡單繫結而言,Windows Form 可支援繫結至簡單物件的公用屬性。 Windows Form 的清單架構繫結通常會需要物件支援 IList 介面或 IListSource 介面。 此外,如果您透過 BindingSource 元件來繫結,則您可以繫結至支援 IEnumerable 介面的物件。 如需與資料繫結相關介面的詳細資訊,請參閱與資料繫結相關的介面。
下列清單列出您可以在 Windows Form 中繫結的結構。
BindingSource
BindingSource 是最常見的 Windows Form 資料來源,扮演資料來源和 Windows Form 控制項之間的 Proxy。 一般的 BindingSource 使用模式是將您的控制項繫結至 BindingSource,以及將 BindingSource 繫結至資料來源 (例如 ADO.NET 資料表或一個商務物件)。 BindingSource 所提供的服務可以啟用和改進資料繫結支援的層級。 例如,Windows Form 的 DataGridView 和 ComboBox 等清單架構控制項並不直接支援繫結至 IEnumerable 資料來源,然而您可以改由 BindingSource 繫結來達到此目的。 在這種情況下,BindingSource 會將資料來源轉換成 IList。簡單物件
Windows Form 支援將控制項屬性資料繫結至使用 Binding 型別的物件其執行個體之公用屬性。 當使用 BindingSource 時,Windows Form 也支援將清單架構控制項 (例如 ListControl) 繫結至物件的執行個體。陣列或集合
做為資料來源,清單必須實作 IList 介面;例如,身為 Array 類別的執行個體的某陣列。 如需陣列的詳細資訊,請參閱 HOW TO:建立物件的陣列 (Visual Basic)。一般而言,當您為資料繫結建立物件清單時,應該使用 BindingList<T>。 BindingList<T> 是 IBindingList 介面的泛型版本。 IBindingList 介面會加入雙向資料繫結所需的屬性、方法和事件,來延伸 IList 介面。
IEnumerable
如果透過 BindingSource 元件來繫結,Windows Form 控制項可以繫結至只支援 IEnumerable 介面的資料來源。ADO.NET 資料物件
ADO.NET 提供許多適合繫結的資料結構。 在精密度和複雜度上各有不同。DataColumn. DataColumn 是 DataTable 的基本建置組塊,因為資料表是由一些資料行組成的。 每一個 DataColumn 都有一個 DataType 屬性,決定該資料行所儲存資料的種類 (例如,在描述汽車的資料表當中的汽車車款)。 您可以將控制項 (例如 TextBox 控制項的 Text 屬性) 簡單繫結至資料表中的資料行。
DataTable. DataTable 是 ADO.NET 中具有資料列和資料行的資料表表示。 資料表包含兩個集合:代表特定資料表中各資料行的 DataColumn (決定最後何種資料可輸入該資料表),和代表特定資料表中各資料列的 DataRow。 您可以將控制項複雜繫結至資料表中包含的資訊 (例如將 DataGridView 控制項繫結至資料表)。 但是,當您繫結至 DataTable 時,您實際上是繫結至該資料表的預設檢視。
DataView. DataView 是可篩選或排序之單一資料表的自訂檢視。 資料檢視表是複雜繫結 (Complex-Bound) 控制項所使用的資料「快照」。 您可以簡單繫結或複雜繫結至資料檢視表中的資料,但請注意,您是繫結至資料的固定「畫面」,而不是單純的更新資料來源。
DataSet. DataSet 是資料庫中資料表、關聯性與資料條件約束的集合。 您可以簡單繫結或複雜繫結至資料集中的資料,但請注意,您是繫結至 DataSet 的預設 DataViewManager (請參閱下一個項目符號)。
DataViewManager. DataViewManager 是整個 DataSet 的自訂檢視,類似於 DataView,但是包含關聯。 DataViewSettings 集合可讓您針對特定資料表的 DataViewManager 所擁有的任何檢視,設定預設篩選條件和排序選項。