请教这样的类该如何定义?
我想定义一个“地区”类型,它就如TreeView控件的节点对象一样,有属性:代码、名称、上级地区(隶属于地区)、下级地区列表。
(上级地区就是一个“地区”类型,下级地区列表是“地区”类型集合)
我是按以下定义的:
Public Class 地区集合
Inherits System.Collections.ObjectModel.KeyedCollection(Of String, 地区)
Protected Overrides Function GetKeyForItem(ByVal item As 地区) As String
Return item.代码
End Function
End Class
Public Class 地区
Private _代码 As String
Private _名称 As String
Private _上级 As 地区
Private _下级 As 地区集合
Public Sub New()
Me._代码 = ""
Me._名称 = ""
Me._上级 = Nothing
Me._下级 = Nothing
End Sub
Public Sub Dispose()
Me._代码 = Nothing
Me._名称 = Nothing
Me._上级 = Nothing
Me._下级 = Nothing
End Sub
Public Property 代码() As String
Get
Return Me._代码
End Get
Set(ByVal value As String)
Me._代码 = value
End Set
End Property
Public Property 名称() As String
......
End Property
Public Property 上级() As 地区
......
End Property
Public Property 下级() As 地区集合
......
End Property
End Class
当我按以上代码定义后使用发现,我这样做出来同TreeView控件的节点对象并不一样。
dim d1 as new 地区
dim d2 as new 地区
d1.代码=“123”
d1.名称=“abc”
d2.代码=“123123”
d2.名称=“abcabc”
d1.下级.add(d2) '<---这里我想把d2放到d1的下级列表中去
这样后d1的属性“下级”这个集合里有了一个d2对象,但d2对象的属性“上级”并不是d1,而是Nothing
说明还需要我专为d2的“上级”属性,传一个d1进去
但我们在使用TreeView控件的节点对象时,并没有为每个子节点赋值父级节点呀!!当在节点上添加一个下级节点后,这个下级节点的上级节点就自动是当前节点了,她是如何做的呢??
这样的对象还不只"TreeView控件的节点对象"如DataSet对象等很多对象她们是如何实现的??