Modalità di visualizzazione dati nel controllo DataGridView di Windows Form

Il DataGridView controllo può visualizzare i dati in tre modalità distinte: associate, non in uscita e virtuali. Scegliere la modalità più adatta in base ai requisiti.

Svincolato

La modalità non in ingresso è adatta per visualizzare quantità relativamente piccole di dati gestiti a livello di codice. Non si collega il controllo direttamente a un'origine DataGridView dati come in modalità associata. È invece necessario popolare il controllo manualmente, in genere usando il DataGridViewRowCollection.Add metodo .

La modalità in uscita può essere particolarmente utile per i dati statici, di sola lettura o quando si vuole fornire il proprio codice che interagisce con un archivio dati esterno. Quando si vuole che gli utenti interagiscono con un'origine dati esterna, tuttavia, si userà in genere la modalità associata.

Per un esempio che usa un controllo di sola lettura, DataGridViewvedere Procedura: Creare un controllo DataGridView Windows Forms unbound.

Bound

La modalità associata è adatta per la gestione dei dati tramite l'interazione automatica con l'archivio dati. È possibile collegare il controllo direttamente all'origine DataGridView dati impostando la DataSource proprietà. Quando il controllo è associato ai dati, le righe di dati vengono push e pull senza la necessità di una gestione esplicita nella propria parte. Quando la proprietà è true, ogni colonna nell'origine AutoGenerateColumns dati causerà la creazione di una colonna corrispondente nel controllo. Se si preferisce creare colonne personalizzate, è possibile impostare questa proprietà su false e usare la DataPropertyName proprietà per associare ogni colonna quando viene configurata. Ciò è utile quando si vuole usare un tipo di colonna diverso dai tipi generati per impostazione predefinita. Per altre informazioni, vedere Tipi di colonna nel controllo DataGridView Windows Forms.

Per un esempio che usa un controllo associatoDataGridView, vedere Procedura dettagliata: Convalida dei dati nel controllo DataGridView Windows Forms.

È anche possibile aggiungere colonne non in uscita a un DataGridView controllo in modalità associata. Ciò è utile quando si vuole visualizzare una colonna di pulsanti o collegamenti che consentono agli utenti di eseguire azioni in righe specifiche. È anche utile visualizzare colonne con valori calcolati da colonne associate. È possibile popolare i valori delle celle per le colonne calcolate in un gestore per l'evento CellFormatting . Se si usa un oggetto DataSet o DataTable come origine dati, tuttavia, è possibile usare la DataColumn.Expression proprietà per creare una colonna calcolata. In questo caso, il DataGridView controllo considera la colonna calcolata esattamente come qualsiasi altra colonna nell'origine dati.

L'ordinamento per colonne non associate in modalità associata non è supportato. Se si crea una colonna non associata in modalità associata che contiene valori modificabili dall'utente, è necessario implementare la modalità virtuale per mantenere questi valori quando il controllo viene ordinato in base a una colonna associata.

Le macchine

Con la modalità virtuale è possibile implementare le proprie operazioni di gestione dei dati. Ciò è necessario per mantenere i valori delle colonne non associate in modalità associata quando il controllo viene ordinato in base alle colonne associate. L'uso principale della modalità virtuale, tuttavia, consiste nell'ottimizzare le prestazioni durante l'interazione con grandi quantità di dati.

È possibile collegare il controllo a una cache gestita e i controlli del codice quando vengono eseguite il push e il DataGridView pull delle righe di dati. Per mantenere il footprint di memoria ridotto, la cache deve essere simile al numero di righe attualmente visualizzate. Quando l'utente scorre nuove righe nella visualizzazione, il codice richiede nuovi dati dalla cache e, facoltativamente, scarica i dati precedenti dalla memoria.

Quando si implementa la modalità virtuale, è necessario tenere traccia di quando è necessaria una nuova riga nel modello di dati e quando eseguire il rollback dell'aggiunta della nuova riga. L'implementazione esatta di questa funzionalità dipenderà dall'implementazione del modello di dati e dalla semantica delle transazioni del modello di dati; se l'ambito del commit è a livello di cella o riga.

Per altre informazioni sulla modalità virtuale, vedere Modalità virtuale nell'Windows Forms Controllo DataGridView. Per un esempio che illustra come usare gli eventi in modalità virtuale, vedere Procedura dettagliata: Implementazione della modalità virtuale nel controllo DataGridView Windows Forms.

Vedi anche