我有一个列表框,我想填充我创建的contactpersoon对象。 用户使用几个文本字段完成一个小表单,当用户按下ok按钮时,将创建contactpersoon对象。
现在的问题是我想将contactpersoon对象的name属性作为项添加到列表框中。但是当我想从列表框中删除它时,我想通过对象的id属性而不是name属性来删除它...
任何人都可以帮助我。我尝试使用dictonaries但我没有让它们正常工作。
任何人都可以建议/帮助我吗?
非常感谢..
顺便说一句,对不起,我很抱歉:p答案 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的DisplayMember
和ValueMember
字段即可。 DisplayMember
将是可见名称,ValueMember
将是ID字段。