2013-10-20 359 views
0

我将一个List<String>绑定到组合框。我用两种方式写这个。第一种方式,ComboBox的输出是空的。我错在哪里?请帮帮我。 这是我的代码:将组合框绑定到组合框

public class MaritalStatusComboBox:ComboBox 
{ 
    public MaritalStatusComboBox() 
    {  
     BindingSource bs = new BindingSource(); 
     bs.DataSource = new List<string> {"Single","Married" }; 

    } 
} 

和第二种方式:

组合框的
public class MaritalStatusComboBox:ComboBox 
{ 
    List<string> list = new List<string>() { "Single", "Married" }; 
    public MaritalStatusComboBox() 
    { 
     this.Items.Clear(); 
     foreach (string str in list) 
     { 
      this.Items.Add(str); 
     } 

    } 
} 

输出包括它: 单, 已婚, 收藏 为什么收集出现在我的组合框?

+0

我想你在其他地方添加集合,也许你已经在设计师做过。我认为第一个例子应该读this.DataSource = new List (){“Single”,“Married”}; – user2888973

回答

0

在这第一种方法,你没有连接数据源:

BindingSource bs = new BindingSource(); 
bs.DataSource = new List<string> { "Single", "Married" }; 
this.DataSource = bs; 

第二种方法的工作。发布的代码不显示单词“收集”。

+0

我写了“this.DataSource = bs;”但我有这个错误:设置DataSource属性时,无法修改Items集合。 – johny

+0

@johny一旦设置了数据源,就不能通过'Items.Add(...)'方法添加项目。你将不得不将它们添加到数据源。 – LarsTech