Maison >développement back-end >C++ >Comment lier une liste d'objets de classe à une ComboBox en C# ?

Comment lier une liste d'objets de classe à une ComboBox en C# ?

DDD
DDDoriginal
2025-01-13 07:47:41117parcourir

How to Bind a List of Class Objects to a ComboBox in C#?

Lier la liste des objets de classe au contrôle ComboBox

Si vous disposez d'une liste d'objets de classe et que vous souhaitez la lier à un contrôle ComboBox, suivez ces étapes :

1. Créez votre classe

Supposons qu'il existe une classe représentant un pays :

<code class="language-csharp">public class Country
{
    public string Name { get; set; }
    public IList<city> Cities { get; set; }

    public Country()
    {
        Cities = new List<city>();
    }
}</code>

2. Créer un objet BindingSource

Créez un objet BindingSource et définissez sa propriété DataSource sur votre liste de pays. Par exemple :

<code class="language-csharp">var countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };

var bindingSource1 = new BindingSource();
bindingSource1.DataSource = countries;</code>

3. Définir la source de données de ComboBox

Définissez la propriété DataSource du ComboBox sur la propriété DataSource de l'objet BindingSource. Cela établira une connexion entre le ComboBox et votre liste.

<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>

4. Définir les propriétés DisplayMember et ValueMember

Spécifiez l'attribut de classe à afficher dans la ComboBox et l'attribut à stocker comme valeur sélectionnée. Utilisez DisplayMember pour définir les propriétés d'affichage et ValueMember pour définir les propriétés de valeur :

<code class="language-csharp">comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";</code>

5. Obtenez l'article sélectionné

Pour accéder au pays sélectionné, convertissez la propriété SelectedItem du ComboBox en votre type de classe :

<code class="language-csharp">Country country = (Country)comboBox1.SelectedItem;</code>

Conseils :

  • Assurez-vous que la structure de données utilisée comme DataSource implémente l'interface IBindingList. BindingList est l'une de ces implémentations.
  • Liez-vous aux propriétés, pas aux champs, pour garantir un accès correct aux valeurs.

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!

Déclaration:
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