जैसा कि आप कॉम्बोक्स का जिक्र कर रहे हैं, मैं मान रहा हूं कि आप 2-वे डेटाबाइंडिंग का उपयोग नहीं करना चाहते हैं (यदि ऐसा है, तो उपयोग करके देखें BindingList
)
public class Country
{
public string Name { get; set; }
public IList<City> Cities { get; set; }
public Country(string _name)
{
Cities = new List<City>();
Name = _name;
}
}
List<Country> countries = new List<Country> { new Country("UK"),
new Country("Australia"),
new Country("France") };
var bindingSource1 = new BindingSource();
bindingSource1.DataSource = countries;
comboBox1.DataSource = bindingSource1.DataSource;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";
देश बाध्य बता गया में चयनित ढूंढने के लिए, आप की तरह कुछ करना होगा: Country country = (Country)comboBox1.SelectedItem;
।
यदि आप ComboBox को गतिशील रूप से अपडेट करना चाहते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता होगी कि डेटा संरचना जिसे आपने DataSource
लागू किया है IBindingList
; ऐसा ही एक ढांचा है BindingList<T>
।
युक्ति: सुनिश्चित करें कि आप DisplayMember
किसी संपत्ति को वर्ग पर बाँध रहे हैं न कि किसी सार्वजनिक क्षेत्र में। यदि आप वर्ग का उपयोग public string Name { get; set; }
करते हैं तो यह काम करेगा लेकिन यदि इसका उपयोग करता है तो यह public string Name;
मूल्य तक नहीं पहुंच पाएगा और इसके बजाय कॉम्बो बॉक्स में प्रत्येक पंक्ति के लिए ऑब्जेक्ट प्रकार प्रदर्शित करेगा।