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

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

Linda Hamilton
Linda Hamiltonoriginal
2025-01-13 06:13:43502parcourir

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

Liaison de données C# ComboBox : affichage d'une liste d'objets

Ce guide montre comment remplir une ComboBox C# avec une liste d'objets, en affichant une propriété spécifique (par exemple, "Nom") de chaque objet en tant qu'élément dans la liste déroulante. Nous utiliserons un BindingSource pour gérer la connexion de données.

Étape 1 : Définir la classe et la liste de données

Tout d'abord, créez une classe (par exemple, Country) avec les propriétés que vous souhaitez représenter dans votre ComboBox. Voici un exemple avec une propriété Name et une liste d'objets City :

<code class="language-csharp">public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; } = new List<City>();
}

public class City
{
    public string Name { get; set; }
}</code>

Maintenant, créez une liste de Country objets :

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

Étape 2 : Configuration de BindingSource

Créez un objet BindingSource et attribuez votre liste countries comme source de données :

<code class="language-csharp">BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = countries;</code>

Étape 3 : Connecter le BindingSource au ComboBox

Liez le BindingSource à votre ComboBox :

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

Étape 4 : Configuration des membres d'affichage et de valeur

Spécifiez la propriété à afficher dans la liste déroulante ComboBox (DisplayMember) et la propriété à récupérer lorsqu'un élément est sélectionné (ValueMember) :

<code class="language-csharp">comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name"; // Or another suitable property if needed</code>

Étape 5 : Accéder à l'élément sélectionné

Pour récupérer l'objet Country sélectionné :

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

Gestion des mises à jour dynamiques (IBindingList)

Pour les mises à jour dynamiques (ajout ou suppression d'éléments de la liste), assurez-vous que votre source de données implémente l'interface IBindingList. BindingList<T> est un bon choix :

<code class="language-csharp">BindingList<Country> countries = new BindingList<Country>() { /* ... your countries ... */ };
bindingSource.DataSource = countries;</code>

Cette approche garantit que les modifications apportées à la liste countries sous-jacente sont automatiquement reflétées dans la ComboBox.

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