そうです、データソースとしてカスタム オブジェクト ("Person" クラス) のリストを持つコンボ ボックスがあります。Person.Name を DisplayMember にマップしました。オブジェクトは選択された値です。
誰かが「Bob」の人を選択して ChoosePerson を押したとき、私はこの人を取り、それを複製し、その複製を使用して何かをしたいと考えています。
それを説明するコードは次のとおりです。
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 に追加する「ボブ」人物が Person クラスの別のインスタンスであることを確認するにはどうすればよいですか?
編集
@dotNETが提案したように、オブジェクトのクローンを作成する正しい方法を見つけるために、Googleで少しスカウトすることに追加します
Public Function Clone() As Object Implements ICloneable.Clone
Return DirectCast(MemberwiseClone(), Person)
End Function