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é ?
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>
Guide étape par étape
Pour créer une liaison, suivez ces étapes :
Créer une liste
<code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
Initialisez un BindingSource et attribuez son DataSource à List
<code class="language-c#"> var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
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>
Spécifiez la propriété à afficher dans la liste déroulante comme DisplayMember :
<code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
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>
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>
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
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!