Modalità di visualizzazione dati nel controllo DataGridView di Windows Form

Il DataGridView controllo può visualizzare i dati in tre modalità distinte: bound, unbound e virtual. Scegliere la modalità più adatta in base alle esigenze.

Rimuovi associazione

La modalità non associato è adatta per la visualizzazione di quantità relativamente ridotte di dati gestiti a livello di codice. Il controllo non viene collegato 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à non associata può essere particolarmente utile per i dati statici, di sola lettura o quando si vuole fornire codice personalizzato che interagisce con un archivio dati esterno. Quando si vuole che gli utenti interagiscano con un'origine dati esterna, tuttavia, si userà in genere la modalità associata.

Per un esempio che usa un oggetto non associato di sola lettura, vedere Procedura: Creare un controllo DataGridView non associato DataGridViewWindows Form.

Bound

La modalità associata è adatta per la gestione dei dati tramite l'interazione automatica con l'archivio dati. È possibile collegare il DataGridView controllo direttamente all'origine dati impostando la DataSource proprietà . Quando il controllo è associato a dati, le righe di dati vengono spostate e estratte senza la necessità di una gestione esplicita da parte dell'utente. Quando la AutoGenerateColumns proprietà è true, ogni colonna nell'origine dati causerà la creazione di una colonna corrispondente nel controllo . Se si preferisce creare colonne personalizzate, è possibile impostare questa proprietà su false e utilizzare la DataPropertyName proprietà per associare ogni colonna al momento della configurazione. Ciò è utile quando si desidera utilizzare un tipo di colonna diverso dai tipi generati per impostazione predefinita. Per altre informazioni, vedere Tipi di colonna nel controllo DataGridView Windows Form.

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

È anche possibile aggiungere colonne non associate a un DataGridView controllo in modalità associata. Ciò è utile quando si desidera visualizzare una colonna di pulsanti o collegamenti che consentono agli utenti di eseguire azioni su 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 tuttavia si usa un DataSet oggetto o DataTable come origine dati, è possibile utilizzare la DataColumn.Expression proprietà per creare una colonna calcolata. In questo caso, il DataGridView controllo considererà la colonna calcolata esattamente come qualsiasi altra colonna nell'origine dati.

L'ordinamento in base alle 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 operazioni di gestione dei dati personalizzate. 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 quando si interagisce con grandi quantità di dati.

Il controllo viene collegato DataGridView a una cache gestita e il codice controlla quando viene eseguito il push e il pull delle righe di dati. Per mantenere il footprint di memoria ridotto, la cache deve avere dimensioni simili 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, sarà necessario tenere traccia 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 di commit è a livello di cella o di riga.

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

Vedi anche