2014-06-09 144 views
1

我有以下綁定自定義對象到TreeView控件在WPF

class XYZ 
{ 
    List<XYZ> child; 
    String header; 
} 

定義的類的對象我想這個對象綁定到樹視圖。最初XYZ根將是最高層的TreeViewItem。根將有List子作爲子TreeViewItems。這將繼續遞歸,直到每個XYZ對象的列表不爲空。每個TreeViewItem是節點或葉子(如果List子項爲空)。

我能夠以編程方式將TreeViewItem作爲子TreeViewItem添加到父TreeViewItem。

級別數量未知。

我提到這個答案Bind Object to WPF TreeView但這裏提到了三級分層。

回答

3

您只需要爲您的viewmodel定義Hierarchical Datatemplate,並且應該考慮樹視圖中的多個級別。

確保收集使用的是實現了的

<TreeView ItemsSource={Binding child}> 
<TreeView.Resources> 
<HierarchicalDataTemplate ItemsSource="{Binding child}" DataType="{x:Type vm:XYZ}"> 
<Grid> 
<TextBlock Text="{Binding header}"/> 
</Grid> 
</HierarchicalDataTemplate> 
</TreeView.Resources> 
</TreeView> 
+0

爲什麼downvote線INotificationPropertyChanged

的DataTemplate中會??? OP詢問如何構建一個動態樹視圖,併爲此提供了一個Datatemplate。當然,他沒有提供任何代碼,我不得不猜測他的實施,並提供了一個解決方案的指南! – Krishna

+0

對不起,沒有提供任何代碼,但您的解決方案工作! –