我有一个自定义对象,其中包含有关项目资源的详细信息。属性为 PersonName、Position 和 Id 如果资源未填充,则 PersonName 设置为“未分配”。
要将对象添加到组合框,我会:
var avail = s.GetUnassignedPrintRoles(SprintId);
foreach (var o in avail)
{
cmbRoles.Items.Add(o);
}
这在显示资源列表时很好。我的对象有一个被覆盖的 ToString() 方法:
public override string ToString()
{
if(AssignedPerson != null)
return ResourceType + " - " + AssignedPerson.Firstname + " " + AssignedPerson.Surname;
return "Unassigned";
}
但是,我有一个屏幕显示未分配的角色列表。所以,我得到一个列表,其中 Person 为 NULL。
但是,我想在 ComboxBox 中显示“角色”。
但是,我的对象的 ToString 显示“未分配”。我怎样才能让它显示角色属性?有没有办法将对象保存在 Comboxbox 项中,但在显示中显示不同的属性,而不是我在 ToString 覆盖中设置的属性?