原谅我英文不好,希望能解释清楚。我在 Treview (SL4) 中看不到子节点。我有这种情况:
2类:
Public Class My_Root
Private My_Cod_Prod As String
Public Property Cod_Prod() As String
Get
Return My_Cod_Prod
End Get
Set(ByVal value As String)
My_Cod_Prod = value
End Set
End Property
Private My_Desc_Prod As String
Public Property Desc_Prod() As String
Get
Return My_Desc_Prod
End Get
Set(ByVal value As String)
My_Desc_Prod = value
End Set
End Property
Private My_Cod_Desc_Prod As String
Public Property Cod_Desc_Prod() As String
Get
Return My_Cod_Desc_Prod
End Get
Set(ByVal value As String)
My_Cod_Desc_Prod = value
End Set
End Property
Private My_Items As New My_Child
Public Property Items() As My_Child
Get
Return My_Items
End Get
Set(ByVal value As My_Child)
My_Items = value
End Set
End Property
End Class
Public Class My_Child
Implements INotifyPropertyChanged
Dim Selezionato As Boolean = False
Private My_Cod_PosFis As String
Public Property Cod_PosFis() As String
Get
Return My_Cod_PosFis
End Get
Set(ByVal value As String)
My_Cod_PosFis = value
End Set
End Property
Private My_Desc_PosFis As String
Public Property Desc_PosFis() As String
Get
Return My_Desc_PosFis
End Get
Set(ByVal value As String)
My_Desc_PosFis = value
End Set
End Property
Public Property Selezione
Get
Return Selezionato
End Get
Set(ByVal value)
Selezionato = value
NotifyPropertyChanged("Selezione")
End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Sub NotifyPropertyChanged(ByVal propertyName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
End Class
然后我创建一个 ObservableCollection:
Public Shared nodi As New ObservableCollection(Of My_Root)()
人们以这种方式:
Private Sub Compila_Class_My_Root()
For Each Prod In Elenco_ASS_Prodotti_PosFiscali
Dim NodoRoot As New My_Root
NodoRoot.Cod_Prod = Prod.PFIS_CODPROD
NodoRoot.Desc_Prod = Prod.PFIS_DESCOM
NodoRoot.Cod_Desc_Prod = Prod.PFIS_CODPROD & " - " & Prod.PFIS_DESCOM
Dim NodoChild As New My_Child
NodoChild.Cod_PosFis = Prod.PFIS_POSFIS
Dim desc_pos_fis As String = get_DescrizionePosFis(Prod.PFIS_POSFIS)
NodoChild.Desc_PosFis = desc_pos_fis
NodoRoot.Items = NodoChild
nodi.Add(NodoRoot)
Next
MyTreeView.ItemsSource = nodi
End Sub
这是 HierarchicalDataTemplate 的 XAML 部分:
<sdk:HierarchicalDataTemplate x:Key="MyNodeRoot">
<sdk:HierarchicalDataTemplate.ItemsSource>
<Binding Path="My_Root" />
</sdk:HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Path=Cod_Desc_Prod}" />
</sdk:HierarchicalDataTemplate>
<sdk:TreeView Name="MyTreeView" ItemTemplate="{StaticResource MyNodeRoot}"/>
在这里我无法理解如何显示子节点。