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!