나는 Abe Heidebrecht의 도움으로이 작업을했습니다. 그에게 많은 감사. 여기 내 비주얼 베이직 코드의
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:PageManager"
Title="Window1" Height="300" Width="300" Name="Window1">
<Grid>
<TreeView Margin="12" Name="TreeViewPages" ItemsSource="{Binding}" TreeViewItem.Expanded="TreeViewPages_Expanded">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Page}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Path=ShortTitle}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</Grid>
</Window>
여기 내 XAML은 ... ... 윈도우로드 루트 노드와 노드의 아이가 데이터베이스에서 쿼리 및 삽입
Class Window1
Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
Dim db As New PageEntities
Dim RootPage = From p In db.Page.Include("Children") _
Where (p.Parent Is Nothing) _
Select p
TreeViewPages.ItemsSource = RootPage
End Sub
Private Sub TreeViewPages_Expanded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
Dim ExpandedTreeViewItem As TreeViewItem = DirectCast(e.OriginalSource, TreeViewItem)
Dim PageId As Guid = DirectCast(ExpandedTreeViewItem.DataContext, Page).Id
Dim db As New PageEntities
Dim ChildPages = From p In db.Page.Include("Children") _
Where p.Parent.Id = PageId _
Select p
ExpandedTreeViewItem.ItemsSource = ChildPages
End Sub
End Class
나무에.
노드가 확장 될 때마다 해당 노드의 자식과 손자가 데이터베이스에서 쿼리되어 트리에 삽입됩니다.
이미지 링크가 손상된 것 같습니다. 여전히 원본 이미지가있는 경우 stack.imgur에 다시 업로드하거나 질문을 편집하여 이미지없이 작동되게하십시오. 감사. –