【问题标题】:Populating a combobox with List<string>使用 List<string> 填充组合框
【发布时间】:2015-10-22 06:14:07
【问题描述】:

组合框索引更改后,必须用List&lt;string&gt; 值填充另一个组合框。我怎么能做到这一点?

例如:

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

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;
}

希望这样可以理解。如果我忘记了什么,请告诉我!

【问题讨论】:

  • 是不是items.add方法只能加一个?这意味着您的 list 方法必须被调用到一个变量中,然后循环通过以便单独添加每个选项。
  • @AlfieGoodacre 我只是在制作一个本地列表 将所有项目都放在那里。然后使用 Foreach 将项目添加到组合框中。我想应该有更好的选择。那个让我想虽然呵呵! ;) 欣赏这个想法!谢谢!

标签: c# winforms combobox


【解决方案1】:

我认为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()); 

【讨论】:

  • 我(还)不可能实际使用 AddRange。 AddRange 想要一个对象 [],我没有对象 []。我有一个列表。在我目前的情况下,为了达到 AddRange,我需要改变什么吗?
  • 啊,是的。我已经修改了我的示例以包含.ToArray(),它将其转换为string[],即object[](所以它可以工作)
  • 当然可以!你帮了我一大堆!谢了哥们! :)
猜你喜欢
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多