我有一个具有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为新页面实体Dim t=从p到db。Page.Include("儿童")_Where p.父母什么都不是_选择pTreeViewPages.ItemsSource=t
但我得到了一个包含一个非模板项的树:
PageManager.Page
我需要做些什么才能让它正常工作?
您需要在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}">
我会澄清我的帖子,回答你最初的问题。