2008-11-07 221 views
0

我有一個Parent和Children屬性的類。WPF TreeView綁定

ADO.NET Entity Framework Hierarchical Page Class 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 As New PageEntities 
Dim t = From p In db.Page.Include("Children") _ 
     Where p.Parent Is Nothing _ 
     Select p 
TreeViewPages.ItemsSource = t 

,但我得到一棵樹,一個非模板項目:

 
PageManager.Page 

我需要做些什麼來實現這個功能?

+0

查看相關問題:http://stackoverflow.com/questions/269523/how-do-i-use-a-wpf-treeview-hierarchicaldatatemplate-with-linq-to-entities#273535 – 2008-11-07 20:28:19

回答

1

您需要在XAML文件中爲您的Page類定義一個xmlns映射並將其用於Type聲明中。您沒有收到編譯錯誤的原因是Page類已經在WPF中定義。

所以,如果你的Page類是在扎克命名空間中定義,在TreeViewBinding裝配,則需要添加以下聲明父容器(最有可能的窗口):

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

然後修改您的DataTemplate如下:

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

我會澄清我的文章,爲您原來的問題。

+0

上一個問題:http: //stackoverflow.com/questions/272854/wpf-treeview-binding – 2008-11-07 19:50:59