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

控制項 DataGridView 可以透過三種不同的模式來顯示資料:系結、未系結和虛擬。 根據您的需求選擇最適合的模式。

鬆散

未系結模式適用于以程式設計方式顯示相對少量的資料。 您不會將控制項直接附加 DataGridView 至資料來源,就像系結模式一樣。 相反地,您必須自行填入控制項,通常是使用 DataGridViewRowCollection.Add 方法。

未系結模式特別適用于靜態、唯讀資料,或當您想要提供與外部資料存放區互動的您自己的程式碼時。 不過,當您想要讓使用者與外部資料源互動時,您通常會使用系結模式。

如需使用唯讀未系結的範例,請參閱 如何:建立未系結 DataGridView 的 Windows Forms DataGridView 控制項 。

綁定

系結模式適用于使用與資料存放區的自動互動來管理資料。 您可以藉由設定 DataSource 屬性,直接將控制項附加 DataGridView 至其資料來源。 當控制項系結資料時,資料列會推送和提取,而不需要明確管理。 AutoGenerateColumns當 屬性為 true 時,資料來源中的每個資料行都會在 控制項中建立對應的資料行。 如果您想要建立自己的資料行,您可以將此屬性設定為 false ,並在設定時使用 DataPropertyName 屬性來系結每個資料行。 當您想要使用預設產生的類型以外的資料行類型時,這會很有用。 如需詳細資訊,請參閱 Windows Forms DataGridView 控制項 中的資料行類型。

如需使用綁定 DataGridView 控制項的範例,請參閱 逐步解說:驗證 Windows Forms DataGridView 控制項 中的資料。

您也可以在系結模式中將未系結的資料行新增至 DataGridView 控制項。 當您想要顯示按鈕或連結的資料行,讓使用者能夠在特定資料列上執行動作時,這會很有用。 使用從系結資料行計算的值來顯示資料行也很有用。 您可以在 事件的處理常式中填入匯出資料行的資料 CellFormatting 格值。 不過,如果您使用 DataSetDataTable 作為資料來源,您可能想要改用 DataColumn.Expression 屬性來建立匯出資料行。 在此情況下, DataGridView 控制項會將匯出資料行視為資料來源中的任何其他資料行。

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

網路

使用虛擬模式,您可以實作自己的資料管理作業。 當控制項依系結資料行排序時,必須維持系結模式中未系結資料行的值。 不過,虛擬模式的主要用途是優化與大量資料互動時的效能。

您可以將控制項附加 DataGridView 至您管理的快取,以及資料列推送和提取時的程式碼控制項。 為了保持記憶體使用量較小,快取的大小應該與目前顯示的資料列數目類似。 當使用者將新的資料列捲動到檢視中時,您的程式碼會從快取要求新的資料,並選擇性地從記憶體清除舊資料。

當您實作虛擬模式時,您必須追蹤資料模型中何時需要新的資料列,以及何時復原新增資料列。 這項功能的確切實作將取決於資料模型實作和資料模型的交易語意:認可範圍是否位於資料格或資料列層級。

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

另請參閱