0

我有一个带有 Parent 和 Children 属性的类。

ADO.NET 实体框架分层页面类 http://img148.imageshack.us/img148/6802/edmxxe8.gif

我想在 WPF 树视图中显示这个层次结构。

这是我的 XAML ......

<TreeView Margin="12" Name="TreeViewPages" ItemsSource="{Binding}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type Page}" ItemsSource="{Binding Children}">
            <TextBlock Text="{Binding Path=ShortTitle}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

还有我的VB代码...

Dim db 作为新的 PageEntities
Dim t = From p In db.Page.Include("Children") _
        p.Parent 什么都不是 _
        选择 p
TreeViewPages.ItemsSource = t

但我得到一棵树,里面有一个非模板项目:

页面管理器.Page

我需要做什么才能使它正常工作?

4

1 回答 1

1

您需要在 XAML 文件中定义到 Page 类的 xmlns 映射,并在 Type 声明中使用它。您没有收到编译错误的原因是 Page 类已在 WPF 中定义。

因此,如果您的 Page 类是在 Zack 命名空间中定义的,则在 TreeViewBinding 程序集中,您需要将以下声明添加到父容器(很可能是 Window):

xmlns:local="clr-namespace:Zack;assembly=TreeViewBinding"

然后将您的 DataTemplate 修改为以下内容:

<HierarchicalDataTemplate DataType="{x:Type local:Page}" ItemsSource="{Binding Children}">

我将针对您的原始问题澄清我的帖子。

于 2008-11-07T19:14:35.150 回答