Liaison de contrôles WPF avec des données dans Visual Studio
Vous pouvez afficher des données pour les utilisateurs de votre application en liant des données à des contrôles WPF. Pour créer ces contrôles liés aux données, vous pouvez faire glisser les éléments depuis la fenêtre Sources de données vers le Concepteur WPF dans Visual Studio. Cette rubrique décrit quelques tâches, outils et classes les plus courants que vous pouvez utiliser pour créer des applications WPF liées aux données.
Pour plus d'informations sur la création de contrôles liés aux données dans Visual Studio, consultez Liaison de contrôles à des données dans Visual Studio. Pour plus d'informations sur la liaison de données WPF, consultez Vue d'ensemble de la liaison de données.
Tâches impliquées dans la liaison de contrôles WPF aux données
Le tableau suivant répertorie les tâches qui peuvent être accomplies en faisant glisser des éléments de la fenêtre Sources de données vers le Concepteur WPF.
Tâche |
Complément d'information |
---|---|
Créer des contrôles liés aux données. Lier des contrôles existants à des données. |
Comment : lier des contrôles WPF à des données dans Visual Studio |
Créer des contrôles qui affichent les données connexes d'une relation parent-enfant : lorsque l'utilisateur sélectionne un enregistrement de données parentes dans un contrôle, un autre contrôle affiche les données enfants connexes pour l'enregistrement sélectionné. |
Comment : afficher des données connexes dans des applications WPF |
Créer une table de correspondance qui affiche les informations provenant d'une table en fonction de la valeur d'un champ de clé étrangère d'une autre table. |
Comment : créer des tables de correspondance dans des applications WPF |
Lier un contrôle à une image dans une base de données. |
Comment : lier des contrôles à des images d'une base de données |
Cibles de déplacement valides
Vous pouvez faire glisser des éléments dans la fenêtre Sources de données uniquement vers les cibles de déplacement valides dans le Concepteur WPF. Il existe deux genres principaux de cibles de déplacement valides : conteneurs et contrôles. Un conteneur est un élément d'interface utilisateur qui contient généralement des contrôles. Par exemple, une grille est un conteneur, de même qu'une fenêtre.
XAML généré et code
Lorsque vous faites glisser un élément de la fenêtre Sources de données vers le Concepteur WPF, Visual Studio génère le XAML qui définit un nouveau contrôle lié aux données (ou lie un contrôle existant à la source de données). Pour certaines sources de données, Visual Studio génère également du code dans le fichier code-behind qui remplit la source de données avec les données.
Le tableau suivant répertorie le code XAML ainsi que le code généré par Visual Studio pour chaque type de source de données dans la fenêtre Sources de données.
Source de données |
Générer le code XAML qui lie un contrôle à la source de données |
Générer du code qui remplit la source de données avec les données |
---|---|---|
Groupe de données |
Oui |
Oui |
Entity Data Model |
Oui |
Oui |
Service |
Oui |
Non |
Objet |
Oui |
Non |
Groupes de données
Lorsque vous faites glisser une table ou une colonne de la fenêtre Sources de données vers le concepteur, Visual Studio génère du code XAML qui effectue les opérations suivantes :
Ajoute le groupe de données (dataset) et un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans le groupe de données.
Crée une liaison de données pour un contrôle. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAML lie le contrôle à l'élément. Si vous faites glisser l'élément vers un conteneur, le code XAML crée le contrôle sélectionné pour l'élément déplacé et lie le contrôle à l'élément. Le contrôle est créé dans une nouvelle Grid.
Visual Studio apporte également les modifications suivantes au fichier code-behind :
- Crée un gestionnaire d'événements Loaded pour l'élément UI qui contient le contrôle. Le gestionnaire d'événements remplit la table des données, extrait le CollectionViewSource des ressources du conteneur, puis active le premier élément de données comme élément de données actuel. Si un gestionnaire d'événements Loaded existe déjà, Visual Studio ajoute ce code au gestionnaire existant.
Entity Data Models
Lorsque vous faites glisser une entité ou une propriété d'entité de la fenêtre Sources de données, vers le concepteur, Visual Studio génère du code XAML qui effectue les opérations suivantes :
Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'entité.
Crée une liaison de données pour un contrôle. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAML lie le contrôle à l'élément. Si vous faites glisser l'élément vers un conteneur, le code XAML crée le contrôle sélectionné pour l'élément déplacé et lie le contrôle à l'élément. Le contrôle est créé dans une nouvelle Grid.
Visual Studio apporte également les modifications suivantes au fichier code-behind :
Ajoute une nouvelle méthode qui retourne une requête pour l'entité que vous avez fait glisser vers le concepteur (ou l'entité qui contient la propriété que vous avez fait glisser vers le concepteur). La nouvelle méthode porte le nom GetNomEntitéQuery, où NomEntité est le nom de l'entité.
Crée un gestionnaire d'événements Loaded pour l'élément UI qui contient le contrôle. Le gestionnaire d'événements appelle la méthode GetNomEntitéQuery pour remplir l'entité avec les données, extrait le CollectionViewSource des ressources du conteneur, puis active le premier élément de données comme élément actuel. Si un gestionnaire d'événements Loaded existe déjà, Visual Studio ajoute ce code au gestionnaire existant.
Services
Lorsque vous faites glisser un objet de service ou une propriété de la fenêtre Sources de données vers le concepteur, Visual Studio génère du code XAML qui crée un contrôle lié aux données (ou lie un contrôle existant à l'objet ou à la propriété). Toutefois, Visual Studio ne génère pas de code qui remplit l'objet de service proxy avec les données. Vous devez écrire ce code vous-même. Pour obtenir un exemple qui illustre cette opération, consultez Procédure pas à pas : liaisons de contrôles WPF à un service de données WCF.
Visual Studio génère du code XAML qui effectue les opérations suivantes :
Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'objet retourné par le service.
Crée une liaison de données pour un contrôle. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAML lie le contrôle à l'élément. Si vous faites glisser l'élément vers un conteneur, le code XAML crée le contrôle sélectionné pour l'élément déplacé et lie le contrôle à l'élément. Le contrôle est créé dans une nouvelle Grid.
Objets
Lorsque vous faites glisser un objet ou une propriété de la fenêtre Sources de données vers le concepteur, Visual Studio génère du code XAML qui crée un contrôle lié aux données (ou lie un contrôle existant à l'objet ou à la propriété). Toutefois, Visual Studio ne génère pas de code pour remplir l'objet avec les données. Vous devez écrire ce code vous-même.
Notes
Les classes personnalisées doivent être publiques et posséder un constructeur sans paramètre par défaut. Il ne peut pas s'agir de classes imbriquées qui ont un "point" dans leur syntaxe. Pour plus d'informations, consultez XAML et classes personnalisées pour WPF.
Visual Studio génère du code XAML qui effectue les opérations suivantes :
Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'objet.
Crée une liaison de données pour un contrôle. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAML lie le contrôle à l'élément. Si vous faites glisser l'élément vers un conteneur, le code XAML crée le contrôle sélectionné pour l'élément déplacé et lie le contrôle à l'élément. Le contrôle est créé dans une nouvelle Grid.
Voir aussi
Tâches
Comment : lier des contrôles WPF à des données dans Visual Studio
Comment : créer des tables de correspondance dans des applications WPF
Comment : afficher des données connexes dans des applications WPF
Procédure pas à pas : liaison de contrôles WPF avec un modèle Entity Data Model
Procédure pas à pas : liaison de contrôles WPF avec un groupe de données
Procédure pas à pas : liaisons de contrôles WPF à un service de données WCF
Procédure pas à pas : affichage de données connexes dans une application WPF