Utiliser la liste de liaison pour faire fonctionner ComboBox
Cet article décrit comment lier une liste d'objets de classe personnalisés au contrôle ComboBox. Voici la solution :
Tout d'abord, modifiez la classe Country
et ajoutez un constructeur pour initialiser les propriétés Name
et Cities
:
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }</code>
Créer Country
liste d'objets :
<code class="language-csharp">List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };</code>
Initialisez BindingSource
et définissez-le DataSource
sur une liste de pays :
<code class="language-csharp">var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
Lier DataSource
de ComboBox à BindingSource
de DataSource
:
<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>
Définissez DisplayMember
et ValueMember
de ComboBox sur les attributs correspondants de la classe Country
:
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";</code>
ComboBox affichera désormais les noms de chaque pays dans la liste. Pour récupérer le pays sélectionné, vous pouvez utiliser l'attribut SelectedItem
de la ComboBox :
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Notez que pour les mises à jour dynamiques, votre structure de données doit implémenter l'interface IBindingList
. Il est recommandé d'utiliser BindingList<T>
.
Assurez-vous de lier DisplayMember
à une propriété plutôt qu'à un champ public pour garantir un affichage et une fonctionnalité corrects.
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!