2015-10-21 30 views
1

组合框索引更改后,必须使用List<string>值填充另一个组合框。我怎么能做到这一点?使用列表填充组合框<string>

例如:

表格(这是我现在有它的方式,但不正确的):

private void cbSelectEditFunction_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    cbSelectEditName.Items.Add(emp.FindEmployeeinFunction(cbSelectEditFunction.Text));  
} 

类方法:

public List<string> FindEmployeeinFunction(string aFunction) 
{ 
    List<string> EmployeeListFunction = new List<string>(); 

    foreach (Employee TempEmployee in EmployeeList) 
    { 
     if(TempEmployee.Function == aFunction) 
     { 
      EmployeeListFunction.Add(TempEmployee.Username); 
     } 
    } 
    return EmployeeListFunction; 
} 

希望这是可以理解这样。让我知道我是否忘记了一些东西!

+1

是否有可能Items.Add方法只能添加一个方法?这意味着你的列表方法必须被调用到一个变量中,然后循环才能单独添加每个选项。 –

+0

@AlfieGoodacre我只是在制作一个本地列表将所有的项目放在那里。然后使用Foreach将项目添加到组合框。我想应该有更好的选择。那个人让我思考,虽然呵呵! ;)欣赏思想!谢谢! – Levialhan

回答

5

我觉得AddRange是你要找的

//Assuming you don't want to continually add new items use Clear() 
cbSelectEditName.Items.Clear(); 

//Use AddRange to add the list. ToArray() is used to convert List<> to string[] 
cbSelectEditName.Items.AddRange(emp.FindEmployeeinFunction(cbSelectEditFunction.Text).ToArray()); 
+0

我(尚)不可能真正使用AddRange。 AddRange想要一个对象[],我没有一个对象[]。我有一个名单。有我需要改变的地方,以便按照我目前的情况到达AddRange吗? – Levialhan

+0

啊,是的。我修改了我的示例以包含'.ToArray()',它将它转换为'[]'['''''''''''''''''''') – MikeH

+0

当然,你帮了我一把!谢了哥们! :) – Levialhan