检索Listview项并将列数据显示为组合框显示成员,将其他值显示为值成员

时间:2012-08-07 11:50:08

标签: c# winforms listview combobox

我有一个列表视图,其中包含两个列 - 名称和编号。我想读取所有这些项目并将名称分配给组合框显示成员和数字到值成员。我试过想要遵循的方法,但无法帮助自己。这就是我尝试过的。我该怎么办?

    public class numbers
    {
        public string name;
        public string number;
    }
    public class names : List<numbers>
    { 

    }
    names cname = new names();

    public void addcontacts()
    {
        foreach(ListView lv in bufferedListView1)
        {
         //No idea how to proceed

1 个答案:

答案 0 :(得分:1)

首先设置自己的类型:

public class myContact
{
    public string Name { get; set; }
    public string Number { get; set; }

    public myContact(string name, string number)
    {
        this.Name = name;
        this.Number = number;
    }

    public override string ToString()
    {
        return Name;
    }
}

然后将列表视图中的所有项目传输到组合框,如下所示:

foreach (ListViewItem item in listView1.Items)
{
    comboBox1.Items.Add(new myContact(item.Text, item.SubItems[0].Text));
}

此示例假定每个listviewitem都包含名称,并且其第一个子项包含该数字。

当您向组合框添加对象时,C#将使用对象的ToString()方法创建在程序运行时实际可以看到的内容。您使用自己的方法覆盖默认的ToString()方法,并仅返回名称。如果你想使用组合框中的选择,你只需将selectedItem转换回myContact并可以访问那里的数字。欢迎来到OOP:)