1

我有一个包含两列名称和编号的列表视图。我想阅读所有这些项目并将名称分配给组合框显示成员并将编号分配给值成员。我尝试过思考要遵循的方法,但无法帮助自己。这是我尝试过的。我应该如何进行?

    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
4

1 回答 1

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 :)

于 2012-08-07T12:03:31.823 回答