我有一个列表框,我想用我创建的联系人对象填充它。用户填写一个带有几个文本字段的小表单,当用户按下确定按钮时,将创建联系人对象。
现在的问题是我想将contactpersoon 对象的名称属性作为一个项目添加到列表框中。但是当我想从列表框中删除它时,我想通过对象的 id 属性而不是 name 属性来删除它...
谁能帮我这个。我尝试使用字典,但我没有让它们正常工作。
任何人都可以请建议/帮助我吗?
非常感谢你..
顺便说一句,我很抱歉我的英语不好:p
在绑定到 ListBox 时,使用这个 -
listbox.DisplayMember = "name";
listbox.ValueMember = "id";
您可以像这样将 ID 存储为隐藏值。
您需要覆盖 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
}
}
尝试覆盖ToString()
ContactPerson 类的函数并将整个对象添加到 ListBox,而不仅仅是名称。是对象的ListBox.Items
集合,而不仅仅是字符串。ListBox 控件使用ToString()
来显示对象的文本值。
或者,您可以创建一个List<contactperson>
并将其用作数据源,然后只需设置 ListBox 的DisplayMember
和ValueMember
字段。 DisplayMember
将是可见名称,ValueMember
将是 ID 字段。