Condividi tramite


Associare controlli WPF ai dati nelle applicazioni .NET Framework

Annotazioni

La DataSet classe 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 app vengono disconnesse dal database. Le tecnologie sono particolarmente utili per le app che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Sebbene i set di dati siano una tecnologia di successo comprovata, l'approccio consigliato per le nuove applicazioni .NET consiste nell'usare Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e dispone di un'interfaccia di programmazione più semplice.

È possibile visualizzare i dati agli utenti dell'applicazione associando i dati ai controlli WPF. Per creare questi controlli associati a dati, è possibile trascinare elementi dalla finestra Origini dati in Progettazione WPF in Visual Studio. In questo argomento vengono descritte alcune delle attività, degli strumenti e delle classi più comuni che è possibile usare per creare applicazioni WPF associate a dati.

Per informazioni generali su come creare controlli associati a dati in Visual Studio, vedere Associare controlli ai dati in Visual Studio. Per altre informazioni sul data binding WPF, vedere Panoramica del data binding.

Attività coinvolte nell'associazione di controlli WPF ai dati

Nella tabella seguente sono elencate le attività che è possibile eseguire trascinando gli elementi dalla finestra Origini dati a WPF Designer.

Attività Maggiori informazioni
Creare nuovi controlli associati a dati.

Associare i controlli esistenti ai dati.
Associare controlli WPF a un set di dati
Creare controlli che visualizzano dati correlati in una relazione padre-figlio: quando l'utente seleziona un record di dati padre in un controllo, un altro controllo visualizza i dati figlio correlati per il record selezionato. Visualizzare i dati correlati nelle applicazioni WPF
Creare una tabella di ricerca che visualizza le informazioni di una tabella in base al valore di un campo chiave esterna in un'altra tabella. Creare tabelle di ricerca nelle applicazioni WPF
Associare un controllo a un'immagine in un database. Associare controlli a immagini da un database

Destinazioni di rilascio valide

È possibile trascinare gli elementi nella finestra Origini dati solo in destinazioni di rilascio valide in WPF Designer. Esistono due tipi principali di destinazioni di rilascio valide: contenitori e controlli. Un contenitore è un elemento dell'interfaccia utente che in genere contiene controlli. Ad esempio, una griglia è un contenitore e quindi è una finestra.

Codice e XAML generati

Quando si trascina un elemento dalla finestra Origini dati a WPF Designer, Visual Studio genera XAML che definisce un nuovo controllo associato a dati o associa un controllo esistente all'origine dati. Per alcune origini dati, Visual Studio genera anche codice nel file code-behind che riempie l'origine dati con i dati.

La tabella seguente elenca il codice e XAML generato da Visual Studio per ogni tipo di origine dati nella finestra Origini dati .

L'origine dei dati Generare codice XAML che associa un controllo all'origine dati Generare codice che popola la sorgente dati con i dati
Collezione di dati
Modello di Dati delle Entità
Servizio NO
Oggetto NO

Insiemi di dati

Quando si trascina una tabella o una colonna dalla finestra Origini dati alla finestra di progettazione, Visual Studio genera XAML che esegue le operazioni seguenti:

  • Aggiunge il set di dati e un nuovo CollectionViewSource elemento alle risorse del contenitore a cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere usato per spostarsi e visualizzare i dati nel set di dati.

  • Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente nel designer, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, il codice XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo Grid.

Visual Studio apporta anche le modifiche seguenti al file code-behind:

  • Crea un Loaded gestore eventi per l'elemento dell'interfaccia utente che contiene il controllo . Il gestore eventi riempie la tabella con i dati, recupera l'oggetto CollectionViewSource dalle risorse del contenitore e quindi rende il primo elemento dati l'elemento corrente. Se esiste già un Loaded gestore eventi, Visual Studio aggiunge questo codice al gestore eventi esistente.

Modelli di dati di entità

Quando si trascina un'entità o una proprietà di entità dalla finestra Origini dati alla finestra di progettazione, Visual Studio genera XAML che esegue le operazioni seguenti:

  • Aggiunge un nuovo CollectionViewSource elemento alle risorse del contenitore a cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere usato per spostarsi e visualizzare i dati nell'entità.

  • Crea l'associazione dati per il controllo. Se si trascina l'elemento su un controllo esistente nel designer, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, il codice XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo Gridoggetto.

Visual Studio apporta anche le modifiche seguenti al file code-behind:

  • Aggiunge un nuovo metodo che restituisce una query per l'entità che hai trascinato nella finestra di progettazione o per l'entità che contiene la proprietà trascinata nella finestra di progettazione. Il nuovo metodo ha il nome Get<EntityName>Query, dove \<EntityName> è il nome dell'entità.

  • Crea un Loaded gestore eventi per l'elemento dell'interfaccia utente che contiene il controllo . Il gestore eventi chiama il Get<EntityName>Query metodo per riempire l'entità con i dati, recupera l'oggetto CollectionViewSource dalle risorse del contenitore e quindi rende il primo elemento di dati l'elemento corrente. Se esiste già un Loaded gestore eventi, Visual Studio aggiunge questo codice al gestore eventi esistente.

Servizi

Quando si trascina un oggetto servizio o una proprietà dalla finestra Origini dati alla finestra di progettazione, Visual Studio genera XAML che crea un controllo associato a dati (o associa un controllo esistente all'oggetto o alla proprietà). Visual Studio, tuttavia, non genera codice che riempie l'oggetto servizio proxy con dati. È necessario scrivere manualmente questo codice. Per un esempio che illustra come eseguire questa operazione, vedere Associare controlli WPF a un servizio dati WCF.

Visual Studio genera XAML che esegue le operazioni seguenti:

  • Aggiunge un nuovo CollectionViewSource alle risorse del contenitore a cui avete trascinato l'oggetto. CollectionViewSource è un oggetto che può essere utilizzato per spostarsi e visualizzare i dati nell'oggetto restituito dal servizio.

  • Crea un'associazione dati per un elemento di controllo. Se si trascina l'elemento in un controllo esistente nel designer, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, il codice XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo Grid.

Oggetti

Quando si trascina un oggetto o una proprietà dalla finestra Origini dati alla finestra di progettazione, Visual Studio genera XAML che crea un controllo associato a dati (o associa un controllo esistente all'oggetto o alla proprietà). Visual Studio, tuttavia, non genera codice per riempire l'oggetto con i dati. È necessario scrivere manualmente questo codice.

Annotazioni

Le classi personalizzate devono essere pubbliche e, per impostazione predefinita, hanno un costruttore senza parametri. Non possono essere classi annidate che hanno un "punto" nella sintassi del linguaggio. Per altre informazioni, vedere Classi XAML e personalizzate per WPF.

Visual Studio genera XAML che esegue le operazioni seguenti:

  • Aggiunge un nuovo CollectionViewSource alle risorse del contenitore su cui hai trascinato l'oggetto. CollectionViewSource è un oggetto che può essere utilizzato per spostarsi e visualizzare i dati nell'oggetto .

  • Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente nel designer, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, il codice XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo Grid oggetto.

Vedere anche