2016-06-09 29 views
0

我是數據綁定和數據模板的新手,我實際上遇到了問題,因爲我想綁定可包含來自同一類的對象的ObservableCollection的對象。樹形視圖中無限嵌套的對象

下面是實際的XAML代碼:

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Node}"> 
     <TextBlock Text="{Binding Name}" /> 
      <HierarchicalDataTemplate.ItemTemplate> 
       <HierarchicalDataTemplate ItemsSource="{Binding SubNode}"> 
        <TextBlock Text="{Binding Name}" /> 
      </HierarchicalDataTemplate> 
     </HierarchicalDataTemplate.ItemTemplate> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

作爲類代碼:

public class Node 
{ 
    public Node(string name) 
    { 
     Name = name; 
     Subnodes = new ObservableCollection<Node>(); 
    } 

    public string Name { get; private set; } 

    public ObservableCollection<Node> Subnodes { get; private set; } 
} 

正如你可以在我的課代碼中看到,一個對象可以包含嵌套對象的一個​​無限的數字不幸的是,我不明白我怎麼能設法做這樣的事情:

Sample

是否有可能做這樣的事情,如果是的話,怎麼會這樣?

預先感謝您花時間回答我,如果您需要,請隨時詢問我更多信息,或者如果我使用的單詞不正確,請立即更正。

回答

1

模板是簡單,其實

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Subnodes}"> 
     <TextBlock Text="{Binding Path=Name}" /> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

不要忘記設置或綁定TreeView.ItemsSource

TreeView的無限大的確,當一個節點加入到自己的子節點

var root = new Node("A"); 
root.Subnodes.Add(root);