Maison > développement back-end > C++ > Comment lier une liste d'objets personnalisés à une ComboBox et récupérer l'élément sélectionné ?

Comment lier une liste d'objets personnalisés à une ComboBox et récupérer l'élément sélectionné ?

Patricia Arquette
Libérer: 2025-01-13 09:47:43
original
887 Les gens l'ont consulté

How to Bind a List of Custom Objects to a ComboBox and Retrieve the Selected Item?

Lier une liste d'objets à une option de liste déroulante

Vous avez besoin d'une solution pour lier une liste d'objets personnalisés à une liste déroulante et afficher ses propriétés spécifiées sous forme d'étiquettes d'options. En guise de toile de fond, considérons les cours suivants :

<code class="language-c#">public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }

    public Country()
    {
        Cities = new List<City>();
    }
}</code>
Copier après la connexion

Guide étape par étape

Pour créer une liaison, suivez ces étapes :

  1. Créer une liste d'objets personnalisés (par exemple, Pays) :

    <code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
    Copier après la connexion
  2. Initialisez un BindingSource et attribuez son DataSource à List :

    <code class="language-c#"> var bindingSource1 = new BindingSource();
     bindingSource1.DataSource = countries;</code>
    Copier après la connexion
  3. Définissez le DataSource de la zone de liste déroulante sur le DataSource du BindingSource :

    <code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
    Copier après la connexion
  4. Spécifiez la propriété à afficher dans la liste déroulante comme DisplayMember :

    <code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
    Copier après la connexion
  5. Spécifie que la valeur renvoyée par la zone de liste déroulante utilisera la propriété comme ValueMember :

    <code class="language-c#"> comboBox1.ValueMember = "Name";</code>
    Copier après la connexion

Récupérer les éléments sélectionnés

Pour obtenir l'objet Pays sélectionné dans une liste déroulante, transtypez ses éléments sélectionnés vers le type correspondant :

<code class="language-c#">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Copier après la connexion

Mises à jour dynamiques

Si vous avez besoin que la zone de liste déroulante se mette à jour automatiquement, assurez-vous que DataSource implémente l'interface IBindingList. BindingList est une implémentation qui prend en charge les modifications de données en temps réel.

Afficher les objets et les propriétés

Notez que DisplayMember doit référencer une propriété dans la classe (par exemple, "Name"). Si vous utilisez un champ (par exemple, "Nom ;"), la valeur ne sera pas accessible et la liste déroulante affichera le type d'objet au lieu de la valeur de la propriété.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal