Associazione di controlli WPF ai dati in Visual Studio
È possibile visualizzare i dati per gli utenti dell'applicazione mediante l'associazione dei dati ai controlli WPF. Per creare questi controlli associati a dati, è possibile trascinare gli elementi dalla finestra Origini dati a WPF Designer in Visual Studio. In questo argomento vengono descritte alcune delle più comuni attività, strumenti e classi che è possibile utilizzare per creare applicazioni WPF associate a dati.
Per informazioni generali sulla creazione di controlli associati a dati in Visual Studio, vedere Associazione di controlli ai dati in Visual Studio. Per ulteriori informazioni sull'associazione dati di WPF, vedere Data Binding Overview.
Attività coinvolte nell'associazione di controlli WPF a dati
Nella tabella seguente vengono elencate le attività che possono essere eseguite trascinando gli elementi dalla finestra Origini dati a WPF Designer.
Attività |
Ulteriori informazioni |
---|---|
Creare nuovi controlli associati a dati. Associare controlli esistenti a dati. |
|
Creare controlli che visualizzano i 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. |
Procedura: visualizzare dati correlati nelle applicazioni WPF |
Creare una tabella di ricerca che consente di visualizzare le informazioni contenute in una tabella in base al valore di un campo della chiave esterna in un'altra tabella. |
|
Associare un controllo a un'immagine di un database. |
Destinazioni di rilascio valide
È possibile trascinare gli elementi della 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 i controlli. Una griglia e una finestra, ad esempio, sono contenitori.
Codice e XAML generati
Quando si trascina un elemento dalla finestra Origini dati in 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 il codice nel file code-behind che inserisce i dati nell'origine dati.
Nella tabella seguente vengono elencati XAML e il codice generati da Visual Studio per ogni tipo di origine dati nella finestra Origini dati.
Origine dati |
Generazione di XAML per l'associazione di un controllo all'origine dati |
Generazione di codice per l'inserimento dei dati nell'origine dati |
---|---|---|
Dataset |
Sì |
Sì |
Entity Data Model |
Sì |
Sì |
Servizio |
Sì |
No |
Oggetto |
Sì |
No |
Dataset
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 dataset e un nuovo oggetto CollectionViewSource alle risorse del contenitore in cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere utilizzato per esplorare e visualizzare i dati nel dataset.
Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente della finestra di progettazione, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo oggetto Grid.
Visual Studio apporta inoltre le modifiche seguenti al file code-behind:
- Crea un gestore dell'evento Loaded per l'elemento UI contenente il controllo. Il gestore dell'evento inserisce i dati nella tabella, recupera l'oggetto CollectionViewSource dalle risorse del contenitore, quindi imposta come elemento corrente il primo elemento di dati. Se un gestore eventi Loaded è già presente, Visual Studio aggiunge questo codice al gestore eventi esistente.
Entity Data Model
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 oggetto CollectionViewSource alle risorse del contenitore in cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere utilizzato per esplorare e visualizzare i dati nell'entità.
Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente della finestra di progettazione, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo oggetto Grid.
Visual Studio apporta inoltre le modifiche seguenti al file code-behind:
Aggiunge un nuovo metodo che restituisce una query per l'entità trascinata nella finestra di progettazione (o per l'entità contenente la proprietà trascinata nella finestra di progettazione). Il nome del nuovo metodo è GetNomeEntitàQuery, dove NomeEntità è il nome dell'entità.
Crea un gestore dell'evento Loaded per l'elemento UI contenente il controllo. Il gestore dell'evento chiama il metodo GetNomeEntitàQuery per inserire i dati nell'entità, recupera l'oggetto CollectionViewSource dalle risorse del contenitore, quindi imposta come elemento corrente il primo elemento di dati. Se un gestore eventi Loaded è già presente, 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 il codice che inserisce i dati nell'oggetto servizio del proxy. È necessario scrivere questo codice manualmente. Per un esempio che illustri questo come eseguire questa operazione, vedere Procedura dettagliata: associazione di controlli WPF a un servizio dati WCF.
Visual Studio genera XAML che esegue le operazioni seguenti:
Aggiunge un nuovo oggetto CollectionViewSource alle risorse del contenitore in cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere utilizzato per esplorare e visualizzare i dati nell'oggetto restituito dal servizio.
Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente della finestra di progettazione, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo oggetto 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 il codice per inserire i dati nell'oggetto. È necessario scrivere questo codice manualmente.
Nota
Le classi personalizzate devono essere pubblicate e devono avere un costruttore senza parametri predefinito. Le classi annidate non possono avere un 'punto' nella sintassi. Per ulteriori informazioni, vedere Classi XAML e personalizzate per WPF.
Visual Studio genera XAML che esegue quanto riportato di seguito:
Aggiunge un nuovo oggetto CollectionViewSource alle risorse del contenitore in cui è stato trascinato l'elemento. CollectionViewSource è un oggetto che può essere utilizzato per esplorare e visualizzare i dati nell'oggetto.
Crea un'associazione dati per un controllo. Se si trascina l'elemento in un controllo esistente della finestra di progettazione, XAML associa il controllo all'elemento. Se si trascina l'elemento in un contenitore, XAML crea il controllo selezionato per l'elemento trascinato e associa il controllo all'elemento. Il controllo viene creato all'interno di un nuovo oggetto Grid.
Vedere anche
Attività
Procedura: associare controlli WPF ai dati in Visual Studio
Procedura: creare tabelle di ricerca nelle applicazioni WPF
Procedura: visualizzare dati correlati nelle applicazioni WPF
Procedura dettagliata: associazione di controlli WPF a un Entity Data Model
Procedura dettagliata: associazione di controlli WPF a un dataset
Procedura dettagliata: associazione di controlli WPF a un servizio dati WCF
Procedura dettagliata: visualizzazione dei dati correlati in un'applicazione WPF