Soo,我有一个组合框,它有一个自定义对象列表(“Person”类)作为数据源。我已将 Person.Name 映射为 DisplayMember,对象是选定的值。
当有人选择“鲍勃”人并按下选择人时,我想带走这个人,复制它,然后用复制品做事。
下面是解释它的代码:
Private Sub ChoosePerson_Click(sender As Object, e As EventArgs) Handles ChoosePerson.Click
Dim p As Person= CType(cbPerson.SelectedValue, Person)
MyChosenList.Add(ChoseAPerson(m))
cbPerson.SelectedIndex() = 0
End Sub
Private function ChoseAPerson(byval p as Person) as Person
Dim newPerson as Person = p
newPerson.name = "ANewPerson_" & p.Name
Return newPerson
End function
现在,如果我回到我的组合框 cbPerson,我之前选择的人 (bob) 的名称将替换为“ANewPerson_bob”
如何确保我添加到 myChosenList 的“bob”人是 Person 类的不同实例?
编辑
正如@dotNET 所建议的那样,我在 google 上添加了一些内容以找到克隆我的对象的正确方法
Public Function Clone() As Object Implements ICloneable.Clone
Return DirectCast(MemberwiseClone(), Person)
End Function