私の英語が下手であることを許してください。うまく説明できることを願っています。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}"/>
ここで、子ノードを表示する方法がわかりません。