Lier les contrôles WPF aux données dans les applications .NET Framework
Remarque
Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Ces technologies sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.
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 des éléments de 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 à des données
Le tableau suivant liste 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 | Plus d’informations |
---|---|
Créer des contrôles liés aux données. Lier des contrôles existants à des données. |
Lier des contrôles WPF à un dataset |
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é. | Afficher des données associées dans des applications WPF |
Créer une table de recherche qui affiche les informations provenant d’une table en fonction de la valeur d’un champ de clé étrangère d’une autre table. | Créer des tables de recherche dans des applications WPF |
Lier un contrôle à une image dans une base de données. | Lier des contrôles à des images d’une base de données |
Cibles de dépôt valides
Vous pouvez faire glisser des éléments dans la fenêtre Sources de données seulement vers les cibles de dépôt 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 code 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 et le code générés par Visual Studio pour chaque type de source de données dans la fenêtre Sources de données.
Paramètres | 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 |
---|---|---|
Dataset | Oui | Oui |
Entity Data Model | Oui | Oui |
Service | Oui | Non |
Object | Oui | Non |
Groupes de données
Lorsque vous faites glisser une table ou une colonne à partir de la fenêtre Sources de données vers le concepteur, Visual Studio génère le 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 d’interface utilisateur 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 d’événements existant.
Modèles de données d’entité
Lorsque vous faites glisser une entité ou une propriété d’entité à partir 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 a le nom
Get<EntityName>Query
, où\<EntityName>
est le nom de l’entité.Crée un gestionnaire d’événements Loaded pour l’élément d’interface utilisateur qui contient le contrôle. Le gestionnaire d’événements appelle la méthode
Get<EntityName>Query
pour remplir l’entité avec des données, récupère CollectionViewSource à partir des ressources du conteneur, puis effectue le premier élément de données de l’élément actif. Si un gestionnaire d’événements Loaded existe déjà, Visual Studio ajoute ce code au gestionnaire d’événements existant.
Services
Lorsque vous faites glisser un objet ou une propriété de service à partir 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 montre comment procéder, consultez Lier des 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, par défaut, avoir un constructeur sans paramètres. Il ne peut pas s'agir de classes imbriquées qui ont un « point » dans leur syntaxe. Pour plus d’informations, consultez Classes XAML et 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.