Share via


Associare controlli Windows Form ai dati nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

È possibile visualizzare i dati agli utenti dell'applicazione associando i dati a Windows Form. Per creare questi controlli associati a dati, trascinare gli elementi dalla finestra Origini dati nella finestra di progettazione Windows Form in Visual Studio.

Data Source drag operation

Suggerimento

Se la finestra Origini dati non è visibile, è possibile aprirla scegliendo Visualizza>altre origini dati di Windows>o premendo MAIUSC+ALT+D. Per visualizzare la finestra Origini dati, è necessario avere un progetto aperto in Visual Studio.

Prima di trascinare gli elementi, è possibile impostare il tipo di controllo a cui si desidera eseguire l'associazione. Vengono visualizzati valori diversi a seconda che si scelga la tabella stessa o una singola colonna. È anche possibile impostare valori personalizzati. Per una tabella, Details indica che ogni colonna è associata a un controllo separato.

Bind data source to DataGridView

Controlli BindingSource e BindingNavigator

Il componente BindingSource ha due scopi. In primo luogo, fornisce un livello di astrazione quando si associano i controlli ai dati. I controlli nel form sono associati al componente anziché direttamente a un'origine BindingSource dati. In secondo luogo, può gestire una raccolta di oggetti. L'aggiunta BindingSource di un tipo a crea un elenco di tale tipo.

Per altre informazioni sul BindingSource componente, vedere:

Il controllo BindingNavigator fornisce un'interfaccia utente per lo spostamento tra i dati visualizzati da un'applicazione Windows.

Eseguire il binding ai dati in un controllo DataGridView

Per un controllo DataGridView, l'intera tabella è associata a tale singolo controllo. Quando si trascina un oggetto DataGridView nel modulo, viene visualizzata anche una striscia di strumenti per lo spostamento dei record (BindingNavigator). Un oggetto DataSet, TableAdapter, BindingSourcee BindingNavigator viene visualizzato nella barra dei componenti. Nella figura seguente viene aggiunto anche un oggetto TableAdapterManager perché la tabella Customers ha una relazione con la tabella Orders. Queste variabili sono tutte dichiarate nel codice generato automaticamente come membri privati nella classe del modulo. Il codice generato automaticamente per il riempimento di DataGridView si trova nel Form_Load gestore eventi. Il codice per salvare i dati per aggiornare il database si trova nel Save gestore eventi per BindingNavigator. È possibile spostare o modificare questo codice in base alle esigenze.

GridView with BindingNavigator

È possibile personalizzare il comportamento di DataGridView e BindingNavigator facendo clic sullo smart tag nell'angolo superiore destro di ognuno di essi:

DataGridView and Binding Navigator smart tags

Se i controlli necessari per l'applicazione non sono disponibili all'interno della finestra Origini dati, è possibile aggiungere controlli. Per altre informazioni, vedere Aggiungere controlli personalizzati alla finestra Origini dati.

È anche possibile trascinare gli elementi dalla finestra Origini dati nei controlli già presenti in una maschera per associare il controllo ai dati. Un controllo già associato ai dati ha reimpostato i data binding all'elemento trascinato più di recente. Per essere destinazioni di rilascio valide, i controlli devono essere in grado di visualizzare il tipo di dati sottostante dell'elemento trascinato su di esso dalla finestra Origini dati. Ad esempio, non è valido trascinare un elemento con un tipo di dati su DateTime , CheckBoxperché CheckBox non è in grado di visualizzare una data.

Eseguire il binding ai dati in singoli controlli

Quando si associa un'origine dati a Dettagli, ogni colonna del set di dati viene associata a un controllo separato.

Bind data source to details

Importante

Si noti che nella figura precedente si trascina dalla proprietà Orders della tabella Customers, non dalla tabella Orders. Tramite l'associazione Customer.Orders alla proprietà, i comandi di spostamento eseguiti in DataGridView vengono riflessi immediatamente nei controlli dei dettagli. Se è stato trascinato dalla tabella Orders, i controlli verranno comunque associati al set di dati, ma non verranno sincronizzati con DataGridView.

La figura seguente mostra i controlli associati a dati predefiniti aggiunti al modulo dopo che la proprietà Orders nella tabella Customers è associata a Dettagli nella finestra Origini dati.

Orders table bound to details

Si noti anche che ogni controllo ha uno smart tag. Questo tag abilita le personalizzazioni che si applicano solo a tale controllo.