ID 和对象名称列表框
本文关键字:列表 对象 ID | 更新日期: 2023-09-27 18:36:17
我有一个列表框,我想用我创建的contactpersoon对象填充它。用户完成一个带有几个文本字段的小表单,当用户按下 ok 按钮时,将创建 contactpersoon 对象。
现在的问题是我想将联系人对象的 name 属性作为项目添加到列表框中。 但是当我想从列表框中删除它时,我想通过对象的 id 属性而不是名称属性来删除它......
谁能帮我解决这个问题。我尝试使用字典,但我没有让它们正常工作。
任何人都可以建议/帮助我吗?
谢谢。。
顺便说一句,我很抱歉我的英语:p
绑定到列表框时,请使用这个 -
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 的DisplayMember
和ValueMember
字段。 DisplayMember
为可见名称,ValueMember
为 ID 字段。