Créer des tables de recherche dans des applications .NET Framework WPF
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.
Le terme table de recherche (parfois appelé liaison de recherche) décrit un contrôle qui affiche les informations d’une table de données en fonction de la valeur de champ de clé étrangère dans une autre table. Vous pouvez créer une table de recherche en faisant glisser le nœud principal d’une table ou d’un objet parent dans la fenêtre Sources de données vers un contrôle déjà lié à une colonne ou à une propriété dans une table enfant associée.
Prenez l’exemple d’une table de Orders
dans une base de données commerciale. Chaque enregistrement de la table Orders
inclut un CustomerID
qui indique quel client a passé la commande. Le CustomerID
est une clé étrangère qui pointe vers un enregistrement client dans la table Customers
. Lorsque vous affichez une liste de commandes à partir de la table Orders
, vous pouvez afficher le nom réel du client au lieu de CustomerID
. Étant donné que le nom du client se trouve dans la table Customers
, vous devez créer une table de recherche pour afficher le nom du client. La table de recherche utilise la valeur CustomerID
de l’enregistrement Orders
pour parcourir la relation et retourner le nom du client.
Pour créer une table de choix
Ajoutez à votre projet l’un des types suivants de sources de données avec des données associées :
Jeu de données ou Entity Data Model (EDM).
Service de données WCF, service WCF ou service Web. Pour plus d’informations, consultez Guide pratique pour établir une connexion à des données d’un service.
Objets. Pour plus d’informations, consultez Lier aux objets dans Visual Studio.
Notes
Avant de pouvoir créer une table de recherche, deux tables ou objets connexes doivent exister en tant que source de données pour le projet.
Ouvrez le concepteur WPF et assurez-vous qu’il contient un conteneur qui est une cible de dépôt valide pour les éléments de la fenêtre Sources de données.
Pour plus d’informations sur les cibles de dépôt valides, consultez Lier des contrôles WPF à des données dans Visual Studio.
Dans le menu Données, cliquez sur Afficher les sources de données pour ouvrir la fenêtre Sources de données.
Développez les nœuds dans la fenêtre Sources de données, jusqu’à ce que vous puissiez voir la table ou l’objet parent et la table ou l’objet enfant associé.
Notes
La table ou l’objet enfant associé est le nœud qui apparaît comme un nœud enfant extensible sous la table ou l’objet parent.
Cliquez sur le menu de la liste déroulante du nœud enfant, puis sélectionnez Détails.
Développez le nœud enfant.
Sous le nœud enfant, cliquez sur le menu de la liste déroulante de l’élément qui relie les données enfant et parent. (Dans l’exemple précédent, il s’agit du nœud CustomerID.) Sélectionnez l’un des types de contrôles suivants qui prennent en charge la liaison de recherche :
ComboBox
ListBox
ListView
Notes
Si le contrôle ListBox ou ListView n’apparaît pas dans la liste, vous pouvez ajouter ces contrôles à la liste. Pour plus d’informations, consultez Définir le contrôle à créer lors d’une opération de glisser-déplacer à partir de la fenêtre Sources de données.
Tout contrôle personnalisé qui dérive de Selector.
Notes
Pour plus d’informations sur l’ajout de contrôles personnalisés à la liste des contrôles que vous pouvez sélectionner pour les éléments de la fenêtre Sources de données, consultez Ajouter des contrôles personnalisés à la fenêtre Sources de données.
Faites glisser le nœud enfant de la fenêtre Sources de données vers un conteneur dans le concepteur WPF. (Dans l’exemple précédent, le nœud enfant est le nœud Orders.)
Visual Studio génère du code XAML qui crée de nouveaux contrôles liés aux données pour chaque élément que vous faites glisser. Le code XAML ajoute également un nouveau CollectionViewSource pour la table ou l’objet enfant aux ressources de la cible de dépôt. Pour certaines sources de données, Visual Studio génère également du code pour charger les données dans la table ou l’objet. Pour plus d’informations, consultez Lier des contrôles WPF à des données dans Visual Studio.
Faites glisser le nœud parent de la fenêtre Sources de données vers le contrôle de liaison de recherche que vous avez créé précédemment. (Dans l’exemple précédent, le nœud parent est le nœud Customers).
Visual Studio définit certaines propriétés sur le contrôle pour configurer la liaison de recherche. Le tableau suivant répertorie les propriétés que Visual Studio modifie. Si nécessaire, vous pouvez modifier ces propriétés dans le code XAML ou dans la fenêtre Propriétés.
Propriété Explication du paramètre ItemsSource Cette propriété spécifie la collection ou la liaison utilisée pour obtenir les données qui sont affichées dans le contrôle. Visual Studio définit cette propriété sur CollectionViewSource pour les données parent que vous avez déplacées vers le contrôle. DisplayMemberPath Cette propriété spécifie le chemin d’accès de l’élément de données qui est affiché dans le contrôle. Visual Studio définit cette propriété sur la première colonne ou propriété dans les données parent, après la clé primaire, qui a un type de données chaîne.
Si vous souhaitez afficher une colonne ou une propriété différente dans les données parent, remplacez cette propriété par le chemin d’accès d’une autre propriété.SelectedValue Visual Studio lie cette propriété à la colonne ou à la propriété des données enfant que vous avez déplacées vers le concepteur. Il s’agit de la clé étrangère des données parent. SelectedValuePath Visual Studio définit cette propriété sur le chemin d’accès de la colonne ou de la propriété des données enfant qui est la clé étrangère des données parent.