共用方式為


Windows Form DataGridView 控制項的資料顯示模式

DataGridView 控制項可以使用三種不同的模式來顯示資料:繫結、未繫結和虛擬。 請依您的需要選擇最適合的模式。

未繫結

如果您想要顯示以程式設計方式進行管理的少量資料,則未繫結模式會相當適用。 與繫結模式不同的是,您並不需要直接將 DataGridView 控制項與資料來源連接。 您所必須做的是自行填入控制項的內容,而這通常是使用 DataGridViewRowCollection.Add 方法來完成。

對於靜態、唯讀資料而言,或者當您想提供與外部資料來源存放區的程式碼時,未繫結模式便會特別有用。 然而,當您希望使用者與外部資料來源互動時,通常會使用繫結模式。

如需使用唯讀繫結 DataGridView 的範例,請參閱 HOW TO:建立未繫結的 Windows Form DataGridView 控制項

繫結

繫結模式適合使用與資料存放區的自動互動來管理資料。 您可以經由設定 DataSource 屬性,直接附加 DataGridView 控制項至資料來源。 當控制項為資料繫結時,便會推入和提取資料列,不需要您進行明確管理。 當 AutoGenerateColumns 屬性為 true 時,在資料來源中的每個資料行都會造成在控制項中產生對應的資料行。 如果偏好建立自己的資料行,您可以將這個屬性設定為 false,並在設定時使用 DataPropertyName 屬性來繫結每個資料行。 如果想使用預設所產生的資料行型別以外的型別,這就會非常有用。 如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的資料行型別

如需使用繫結 DataGridView 控制項的範例,請參閱逐步解說:驗證 Windows Form DataGridView 控制項中的資料

您也可以加入未繫結的資料行至繫結模式的 DataGridView 控制項。 當您想顯示按鈕的資料行,或顯示允許使用者在特定資料列上執行動作的連結時,這將會很有用。 對於顯示具有從繫結資料行計算得來的值之資料行,也是很有用。 您可以在 CellFormatting 事件的處理常式中,填入計算資料行的儲存格值。 但是若您使用 DataSetDataTable 做為資料來源,您反而會想要使用 DataColumn.Expression 屬性建立計算資料行。 在這種情況下,DataGridView 控制項將會把計算資料行視為資料來源中的任何其他資料行。

在繫結模式中依未繫結的資料行排序不受支援。 如果您在繫結模式中建立未繫結資料行 (內含使用者可編輯的值),則在依繫結資料行排序控制項時,就必須實作虛擬模式以維護這些值。

虛擬

使用虛擬模式,您可以實作自己的資料管理作業。 當控制項是依繫結資料行排列時,這對於維護在繫結模式中未繫結資料行的值而言,是必須的。 不過虛擬模式的主要用途,是在與大量資料互動時最佳化效能。

您要將 DataGridView 控制項附加至您管理的快取,而您的程式碼則會控制推入和提取資料列的時機。 若要維持少量的記憶體,快取的大小必須類似目前顯示的資料列數目。 當使用者將新資料列捲動到檢視內時,程式碼會從快取要求新資料,並且選擇性地清除記憶體的舊資料。

在實作虛擬模式時,需要追蹤資料模式需要新資料列以及需要復原加入新資料列的時機。 此功能的精確實作會依資料模型的實作和交易語意而定,不管認可的範圍是儲存格或資料列層級。

如需虛擬模式的詳細資訊,請參閱 Windows Form DataGridView 控制項中的虛擬模式。 如需示範如何使用虛擬模式事件的範例,請參閱逐步解說:在 Windows Form DataGridView 控制項中實作虛擬模式

請參閱

工作

逐步解說:建立未繫結的 Windows Form DataGridView 控制項

HOW TO:將資料繫結至 Windows Form DataGridView 控制項

逐步解說:在 Windows Form DataGridView 控制項中實作虛擬模式

參考

DataGridView

DataGridView.DataSource

DataGridView.VirtualMode

BindingSource

DataGridViewColumn.DataPropertyName

概念

Windows Form DataGridView 控制項中的資料行型別

Windows Form DataGridView 控制項中的虛擬模式

其他資源

在 Windows Form DataGridView 控制項中顯示資料