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
Libérer: 2025-01-13 06:13:43
original
416 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

É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>
Copier après la connexion

Étape 3 : Connecter le BindingSource au ComboBox

Liez le BindingSource à votre ComboBox :

<code class="language-csharp">comboBox1.DataSource = bindingSource;</code>
Copier après la connexion

É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>
Copier après la connexion

É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>
Copier après la connexion

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>
Copier après la connexion

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!

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