ID 和对象名称列表框

本文关键字:列表 对象 ID | 更新日期: 2023-09-27 18:36:17

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

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

谁能帮我解决这个问题。我尝试使用字典,但我没有让它们正常工作。

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

谢谢。。

顺便说一句,我很抱歉我的英语:p

ID 和对象名称列表框

绑定到列表框时,请使用这个 -

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

可以将 ID 存储为隐藏值,如下所示。

您需要重写 ContactPerson 类中的 ToString 方法。 例如:

public class ContactPerson
{
    public string Name;
    public string Id;
    public override string ToString()
    {
        return Name;
    }
}

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

listbox.Items.Add(contactPerson);

然后,在删除时,可以循环访问列表中的每个项目并读取 ContactPerson 对象的任何属性,例如:

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

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

或者,您可以创建一个List<contactperson>并将其用作数据源,只需设置 ListBox 的DisplayMemberValueMember字段。 DisplayMember为可见名称,ValueMember为 ID 字段。