区别:
var deviceEnum = new MMDeviceEnumerator();
var devices = deviceEnum.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active).ToList();
combDevice.ItemsSource = devices;//wpf
combDevice.DataSource = devices;//WINFORM
------
comboBox1.DataSource = bindingSource1.DataSource;//WINFORM
生成ComboBox list代码例子:
1 List<string> list = new List<string>(); 2 BindingSource bsource=new BindingSource(); 3 4 //Set list dataSource 5 bsource.DataSource = list; 6 comboBox1.DataSource = bsource; 7 8 //Now add an element via Binding object 9 bsource.Add("One"); 10 bsource.Add("Two");
代码例子2:
1 public class Country 2 { 3 public string Name { get; set; } 4 public IList<City> Cities { get; set; } 5 public Country(string _name) 6 { 7 Cities = new List<City>(); 8 Name = _name; 9 } 10 } 11 12 13 14 List<Country> countries = new List<Country> { new Country("UK"), 15 new Country("Australia"), 16 new Country("France") }; 17 18 bindingSource1.DataSource = countries; 19 20 comboBox1.DataSource = bindingSource1.DataSource; 21 22 comboBox1.DisplayMember = "Name"; 23 comboBox1.ValueMember = "Name";
Or you may try ArrayList.Adapter method that creates Adapter wrapper of IList.
ArrayList items;
items=ArrayList.Adapter(comboBox1.Items); items.Add("one");
ComboBox
其他代码:
1 void Form1Load(object sender, EventArgs e) 2 { 3 List<string> myitems = new List<string> 4 { 5 "Item 1", 6 "Item 2", 7 "Item 3" 8 }; 9 10 ComboBox box = new ComboBox(); 11 box.Bounds = new Rectangle(10, 10, 100, 50); 12 source1.DataSource = myitems; 13 box.DataSource = source1; 14 15 ComboBox box2 = new ComboBox(); 16 box2.Bounds = new Rectangle(10, 80, 100, 50); 17 source2.DataSource = myitems; 18 box2.DataSource = source2; 19 20 Controls.Add(box); 21 Controls.Add(box2); 22 }
ref:
https://stackoverflow.com/questions/600869/how-to-bind-a-list-to-a-combobox-winforms
https://stackoverflow.com/questions/482/winforms-combobox-data-binding-gotcha
其他区别:
private void btIATstop_Click(object sender, EventArgs e)
private void btnStop_Click(object sender, RoutedEventArgs e) //WPF