id和对象名称列表框

时间:2012-06-05 20:33:11

标签: c# listbox

我有一个列表框,我想填充我创建的contactpersoon对象。 用户使用几个文本字段完成一个小表单,当用户按下ok按钮时,将创建contactpersoon对象。

现在的问题是我想将contactpersoon对象的name属性作为项添加到列表框中。但是当我想从列表框中删除它时,我想通过对象的id属性而不是name属性来删除它...

任何人都可以帮助我。我尝试使用dictonaries但我没有让它们正常工作。

任何人都可以建议/帮助我吗?

非常感谢..

顺便说一句,对不起,我很抱歉:p

3 个答案:

答案 0 :(得分:2)

您需要覆盖ContactPerson类中的ToString方法。例如:

public class ContactPerson
{
    public string Name;
    public string Id;

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

然后,您可以将实际的ContactPerson对象添加到列表框中。例如:

listbox.Items.Add(contactPerson);

然后,当您删除时,您可以遍历列表中的每个项目并读取ContactPerson对象的任何属性,例如:

foreach(object item in listbox.Items)
{
    if((ContactPerson)item.Id == ...)
    {
        // do work
    }
}

答案 1 :(得分:2)

在绑定到ListBox时,使用此 -

listbox.DisplayMember = "name";
listbox.ValueMember = "id";

您可以将ID存储为隐藏值。

答案 2 :(得分:1)

尝试覆盖ContactPerson类的ToString()函数,并将整个对象添加到ListBox,而不仅仅是名称。 ListBox.Items是对象的集合,而不仅仅是字符串。 ListBox控件使用ToString()来显示对象的文本值。

或者,您可以创建List<contactperson>并将其用作DataSource,只需设置ListBox的DisplayMemberValueMember字段即可。 DisplayMember将是可见名称,ValueMember将是ID字段。