gpt4 book ai didi

wpf - 如何将 WPF TreeView HierarchicalDataTemplate 与 LINQ to Entities 一起使用?

转载 作者:行者123 更新时间:2023-12-03 21:35:44 33 4
gpt4 key购买 nike

我的 .edmx ADO.NET 实体数据模型文件中有一个带有 Parent 和 Children 属性的 Page 类。它用于页面的层次结构。

删除了死 ImageShack 链接 - ADO.NET Entity Framework 分层页面类

这是在我的 SQL 数据库中使用 Page 表中的 ParentId 外键处理的,该外键绑定(bind)到同一个 Page 表的 Id 主键。

如何在 WPF TreeView 中显示此层次结构?

最佳答案

我在 Abe Heidebrecht 的帮助下完成了这项工作.非常感谢他。

这是我的 XAML ......

<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>

这是我的 Visual Basic 代码...

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

当窗口加载时,从数据库中查询根节点及其子节点并将其插入树中。

每次展开一个节点时,都会从数据库中查询该节点的子节点和孙节点并将其插入树中。

关于wpf - 如何将 WPF TreeView HierarchicalDataTemplate 与 LINQ to Entities 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/269523/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com