Lier des contrôles WPF à des données dans Visual StudioBind WPF controls to data in Visual Studio

Vous pouvez afficher des données pour les utilisateurs de votre application en liant des données à des contrôles WPFWPF.You can display data to users of your application by binding data to WPFWPF controls. Pour créer ces contrôles liés aux données, vous pouvez faire glisser des éléments à partir de la des Sources de données fenêtre sur la Concepteur WPFWPF Designer dans Visual StudioVisual Studio.To create these data-bound controls, you can drag items from the Data Sources window onto the Concepteur WPFWPF Designer in Visual StudioVisual Studio. Cette rubrique décrit quelques tâches, outils et classes les plus courants que vous pouvez utiliser pour créer des applications WPFWPF liées aux données.This topic describes some of the most common tasks, tools, and classes that you can use to create data-bound WPFWPF applications.

Pour plus d’informations sur la façon de créer des contrôles liés aux données dans Visual StudioVisual Studio, consultez lier des contrôles aux données dans Visual Studio.For general information about how to create data-bound controls in Visual StudioVisual Studio, see Bind controls to data in Visual Studio. Pour plus d’informations sur WPFWPF liaison de données, consultez vue d’ensemble de la liaison de données.For more information about WPFWPF data binding, see Data Binding Overview.

Tâches impliquées dans la liaison de contrôles WPF aux donnéesTasks involved in binding WPF controls to data

Le tableau suivant répertorie les tâches pouvant être accomplies en faisant glisser des éléments depuis la des Sources de données fenêtre pour le Concepteur WPFWPF Designer.The following table lists the tasks that can be accomplished by dragging items from the Data Sources window to the Concepteur WPFWPF Designer.

TâcheTask Complément d'informationMore information
Créer des contrôles liés aux données.Create new data-bound controls.

Lier des contrôles existants à des données.Bind existing controls to data.
Lier des contrôles WPF à un datasetBind WPF controls to a 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é.Create controls that display related data in a parent-child relationship: when the user selects a parent data record in one control, another control displays related child data for the selected record. Afficher des données associées dans des applications WPFDisplay related data in WPF applications
Créer un table de recherche qui affiche des informations à partir d’une table en fonction de la valeur d’un champ de clé étrangère dans une autre table.Create a lookup table that displays information from one table based on the value of a foreign-key field in another table. Créer des tables de recherche dans des applications WPFCreate lookup tables in WPF applications
Lier un contrôle à une image dans une base de données.Bind a control to an image in a database. Lier des contrôles à des images d’une base de donnéesBind controls to pictures from a database

Cibles de déplacement validesValid drop targets

Vous pouvez faire glisser des éléments le des Sources de données fenêtre uniquement vers les cibles de dépôt valides dans le Concepteur WPFWPF Designer.You can drag items in the Data Sources window only to valid drop targets in the Concepteur WPFWPF Designer. Il existe deux genres principaux de cibles de dépôt valides : conteneurs et contrôles.There are two main kinds of valid drop targets: containers and controls. Un conteneur est un élément d'interface utilisateur qui contient généralement des contrôles.A container is a user interface element that typically contains controls. Par exemple, une grille est un conteneur, de même qu'une fenêtre.For example, a grid is a container, and so is a window.

XAML et le code généréGenerated XAML and code

Lorsque vous faites glisser un élément à partir de la des Sources de données fenêtre pour le Concepteur WPFWPF Designer, Visual StudioVisual Studio génère XAMLXAML qui définit un nouveau contrôle lié aux données (ou lie un contrôle existant à la source de données).When you drag an item from the Data Sources window to the Concepteur WPFWPF Designer, Visual StudioVisual Studio generates XAMLXAML that defines a new data-bound control (or binds an existing control to the data source). Pour certaines sources de données, Visual StudioVisual Studio génère également du code dans le fichier code-behind qui remplit la source de données avec les données.For some data sources, Visual StudioVisual Studio also generates code in the code-behind file that fills the data source with data.

Le tableau suivant répertorie les XAMLXAML ainsi que le code Visual StudioVisual Studio génère pour chaque type de source de données dans le des Sources de données fenêtre.The following table lists the XAMLXAML and code that Visual StudioVisual Studio generates for each type of data source in the Data Sources window.

Source de donnéesData source Générer le code XAML qui lie un contrôle à la source de donnéesGenerate XAML that binds a control to the data source Générer du code qui remplit la source de données avec les donnéesGenerate code that fills the data source with data
Groupe de donnéesDataset OuiYes OuiYes
Entity Data ModelEntity Data Model OuiYes OuiYes
ServiceService OuiYes NonNo
ObjectObject OuiYes NonNo

Groupes de donnéesDatasets

Lorsque vous faites glisser une table ou une colonne à partir de la des Sources de données fenêtre vers le concepteur, Visual StudioVisual Studio génère XAMLXAML qui effectue les opérations suivantes :When you drag a table or column from the Data Sources window to the designer, Visual StudioVisual Studio generates XAMLXAML that does the following:

  • Ajoute le groupe de données (dataset) et un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément.Adds the dataset and a new CollectionViewSource to the resources of the container you dragged the item to. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans le groupe de données.The CollectionViewSource is an object that can be used to navigate and display the data in the dataset.

  • Crée une liaison de données pour un contrôle.Creates a data binding for a control. 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.If you drag the item to an existing control in the designer, the XAML binds the control to the item. Si vous faites glisser l’élément vers un conteneur, le code XAML crée le contrôle qui a été sélectionné pour l’élément déplacé et lie le contrôle à l’élément.If you drag the item to a container, the XAML creates the control that was selected for the dragged item, and it binds the control to the item. Le contrôle est créé dans une nouvelle Grid.The control is created inside a new Grid.

Visual StudioVisual Studio apporte également les modifications suivantes au fichier code-behind : also makes the following changes to the code-behind file:

  • Crée un gestionnaire d'événements Loaded pour l'élément Interface utilisateurUI qui contient le contrôle.Creates a Loaded event handler for the Interface utilisateurUI element that contains the control. 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.The event handler fills the table with data, retrieves the CollectionViewSource from the container's resources, and then makes the first data item the current item. Si un Loaded Gestionnaire d’événements existe déjà, Visual StudioVisual Studio ajoute ce code au gestionnaire d’événements existant.If a Loaded event handler already exists, Visual StudioVisual Studio adds this code to the existing event handler.

Modèles de données d’entitéEntity data models

Lorsque vous faites glisser une entité ou une propriété d’entité à partir de la des Sources de données fenêtre vers le concepteur, Visual StudioVisual Studio génère XAMLXAML qui effectue les opérations suivantes :When you drag an entity or an entity property from the Data Sources window to the designer, Visual StudioVisual Studio generates XAMLXAML that does the following:

  • Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément.Adds a new CollectionViewSource to the resources of the container you dragged the item to. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'entité.The CollectionViewSource is an object that can be used to navigate and display the data in the entity.

  • Crée une liaison de données pour un contrôle.Creates a data binding for a control. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAMLXAML lie le contrôle à l'élément.If you drag the item to an existing control in the designer, the XAMLXAML binds the control to the item. Si vous faites glisser l’élément à un conteneur, le XAMLXAML crée le contrôle qui a été sélectionné pour l’élément déplacé et lie le contrôle à l’élément.If you drag the item to a container, the XAMLXAML creates the control that was selected for the dragged item, and it binds the control to the item. Le contrôle est créé dans une nouvelle Grid.The control is created inside a new Grid.

Visual Studio apporte également les modifications suivantes au fichier code-behind :Visual Studio also makes the following changes to the code-behind file:

  • 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).Adds a new method that returns a query for the entity that you dragged to the designer (or the entity that contains the property that you dragged to the designer). La nouvelle méthode porte le nom GetEntityNamerequête, où EntityName est le nom de l’entité.The new method has the name GetEntityNameQuery, where EntityName is the name of the entity.

  • Crée un gestionnaire d'événements Loaded pour l'élément Interface utilisateurUI qui contient le contrôle.Creates a Loaded event handler for the Interface utilisateurUI element that contains the control. Le Gestionnaire d’événements appelle la méthode GetEntityNamerequête de méthode pour remplir l’entité des données, extrait le CollectionViewSource à partir du conteneur ressources, puis rend les premier élément de données l’élément actuel.The event handler calls the GetEntityNameQuery method to fill the entity with data, retrieves the CollectionViewSource from the container's resources, and then makes the first data item the current item. Si un Loaded Gestionnaire d’événements existe déjà, Visual StudioVisual Studio ajoute ce code au gestionnaire d’événements existant.If a Loaded event handler already exists, Visual StudioVisual Studio adds this code to the existing event handler.

ServicesServices

Lorsque vous faites glisser un objet de service ou une propriété à partir de la des Sources de données fenêtre vers le concepteur, Visual StudioVisual Studio génère XAMLXAML qui crée un contrôle lié aux données (ou lie un contrôle existant à l’objet ou la propriété).When you drag a service object or property from the Data Sources window to the designer, Visual StudioVisual Studio generates XAMLXAML that creates a data-bound control (or binds an existing control to the object or property). Toutefois, Visual StudioVisual Studio ne génère pas de code qui remplit l'objet de service proxy avec les données.However, Visual StudioVisual Studio does not generate code that fills the proxy service object with data. Vous devez écrire ce code vous-même.You must write this code yourself. Pour obtenir un exemple qui montre comment effectuer cette opération, consultez WPF de lier des contrôles à un service de données WCF.For an example that demonstrates how to do this, see Bind WPF controls to a WCF data service.

Visual Studio génère du code XAML qui effectue les opérations suivantes :Visual Studio generates XAML that does the following:

  • Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément.Adds a new CollectionViewSource to the resources of the container that you dragged the item to. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'objet retourné par le service.The CollectionViewSource is an object that can be used to navigate and display the data in the object that is returned by the service.

  • Crée une liaison de données pour un contrôle.Creates a data binding for a control. Si vous faites glisser l'élément vers un contrôle existant dans le concepteur, le code XAMLXAML lie le contrôle à l'élément.If you drag the item to an existing control in the designer, the XAMLXAML binds the control to the item. Si vous faites glisser l’élément à un conteneur, le XAMLXAML crée le contrôle qui a été sélectionné pour l’élément déplacé et lie le contrôle à l’élément.If you drag the item to a container, the XAMLXAML creates the control that was selected for the dragged item, and it binds the control to the item. Le contrôle est créé dans une nouvelle Grid.The control is created inside a new Grid.

ObjetsObjects

Lorsque vous faites glisser un objet ou une propriété à partir de la des Sources de données fenêtre vers le concepteur, Visual StudioVisual Studio génère XAMLXAML qui crée un contrôle lié aux données (ou lie un contrôle existant à l’objet ou la propriété).When you drag an object or property from the Data Sources window to the designer, Visual StudioVisual Studio generates XAMLXAML that creates a data-bound control (or binds an existing control to the object or property). Toutefois, Visual StudioVisual Studio ne génère pas de code pour remplir l'objet avec les données.However, Visual StudioVisual Studio does not generate code to fill the object with data. Vous devez écrire ce code vous-même.You must write this code yourself.

Note

Classes personnalisées doivent être public et, par défaut, avoir un constructeur sans paramètre.Custom classes must be public and, by default, have a constructor without parameters. Ils classes can'tbe imbriquées qui ont un « point » dans leur syntaxe.They can'tbe nested classes that have a "dot" in their syntax. Pour plus d’informations, consultez XAML et Classes personnalisées pour WPF.For more information, see XAML and Custom Classes for WPF.

Visual StudioVisual Studio génère XAMLXAML qui effectue les opérations suivantes : generates XAMLXAML that does the following:

  • Ajoute un nouveau CollectionViewSource aux ressources du conteneur vers lequel vous avez fait glisser l'élément.Adds a new CollectionViewSource to the resources of the container that you dragged the item to. Le CollectionViewSource est un objet qui peut être utilisé pour naviguer et pour afficher les données dans l'objet.The CollectionViewSource is an object that can be used to navigate and display the data in the object.

  • Crée une liaison de données pour un contrôle.Creates a data binding for a control. 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.If you drag the item to an existing control in the designer, the XAML binds the control to the item. Si vous faites glisser l’élément vers un conteneur, le code XAML crée le contrôle qui a été sélectionné pour l’élément déplacé et lie le contrôle à l’élément.If you drag the item to a container, the XAML creates the control that was selected for the dragged item, and it binds the control to the item. Le contrôle est créé dans une nouvelle Grid.The control is created inside a new Grid.

Voir aussiSee also

Lier des contrôles à des données dans Visual StudioBind controls to data in Visual Studio