Windows Form 支援的資料來源
過去,資料繫結一向是在應用程式內使用,以充分運用儲存在資料庫中的資料。 透過 Windows Forms 資料繫結,您可以存取資料庫中的資料以及其他結構中的資料,例如陣列和集合,只要符合特定的最低需求即可。
要繫結到的結構
在 Windows Forms 中,您可以繫結至多種不同的結構,從簡易物件 (簡單繫結) 到複雜的清單,例如 ADO.NET 資料表 (複雜繫結),都含括在內。 對於簡單繫結,Windows Forms 支援繫結至簡易物件的公用屬性。 Windows Forms 清單型繫結通常需要物件支援 IList 介面或 IListSource 介面。 此外,如果您要透過 BindingSource 元件繫結,可以繫結至支援 IEnumerable 介面的物件。 如需資料繫結相關介面的詳細資訊,請參閱與資料繫結相關的介面。
下列清單顯示您在 Windows Forms 中可繫結到的結構。
BindingSource
BindingSource 是最常見的 Windows Forms 資料來源,可在資料來源與 Windows Forms 控制項之間執行 Proxy。 BindingSource 的一般使用模式是將您的控制項繫結至 BindingSource,並將 BindingSource 繫結至資料來源 (例如,ADO.NET 資料表或商務物件)。 BindingSource 提供可啟用及改善資料繫結支援層級的服務。 例如,Windows Forms 清單型控制項 (如 DataGridView 和 ComboBox) 不支援直接繫結至 IEnumerable 資料來源,但您可透過 BindingSource 進行繫結,藉以支援此案例。 在此情況下,BindingSource 會將資料來源轉換為 IList。
簡易物件
Windows Forms 支援使用 Binding 類型將控制項屬性的資料繫結至物件執行個體的公用屬性。 在使用 BindingSource 時,Windows Forms 也支援將清單型控制項 (例如 ListControl) 繫結至物件執行個體。
陣列或集合
若要作為資料來源,清單必須實作 IList 介面;其中一個範例是屬於 Array 類別執行個體的陣列。 如需陣列的詳細資訊,請參閱操作說明:建立物件的陣列 (Visual Basic)。
一般而言,在建立資料繫結的物件清單時,應使用 BindingList<T>。 BindingList<T> 是 IBindingList 介面的泛型版本。 IBindingList 介面會藉由新增雙向資料繫結所需的屬性、方法和事件,來擴充 IList 介面。
IEnumerable
Windows Forms 控制項可繫結至僅支援 IEnumerable 介面的資料來源,前提是必須透過 BindingSource 元件進行繫結。
ADO.NET 資料物件
ADO.NET 提供多種可供繫結的資料結構。 各種結構的精細度和複雜性有所不同。
DataColumn. DataColumn 是 DataTable 的基本建置組塊,供多個資料行據以組成資料表。 每個 DataColumn 都有 DataType 屬性,以決定資料行所保存的資料種類 (例如,汽車資訊資料表中的汽車製造商)。 您可以將控制項 (例如 TextBox 控制項的 Text 屬性) 簡單繫結至資料表內的資料行。
DataColumn. DataTable 是 ADO.NET 中的資料表表示法,包含資料列和資料行。 資料表包含兩個集合:DataColumn,代表指定資料表中的資料行 (最終決定可輸入該資料表中的資料種類),以及 DataRow,代表指定資料表中的資料列。 您可以將控制項複雜繫結至資料表中包含的資訊 (例如,將 DataGridView 控制器繫結至資料表)。 不過,在繫結至 DataTable 時,您實際上是繫結至資料表的預設檢視。
DataColumn. DataView 是單一資料表可篩選或排序的自訂檢視。 資料檢視是複雜繫結的控制項所使用的資料「快照集」。 您可以簡單繫結或複雜繫結至資料檢視內的資料,但請注意,您會繫結至資料的固定「圖片」,而不是更新中的全新資料來源。
DataColumn. DataSet 是資料庫中所含資料的資料表、關聯性和條件約束的集合。 您可以簡單繫結或複雜繫結至資料集內的資料,但請注意,您會繫結至 DataSet 的預設值 DataViewManager (請參閱下一項要點)。
DataColumn. DataViewManager 是整個 DataSet 的自訂檢視,與 DataView 類似,但包含關聯。 透過 DataViewSettings 集合,您可以為 DataViewManager 提供給指定資料表的任何檢視設定預設篩選和排序選項。