2015-08-27 39 views
0

實際上,我寫的代碼添加在TreeView的一些值,檢查:如何將元素添加到TreeView Child並存儲它?

 TreeViewItem treeItem = null; 

     treeItem = new TreeViewItem(); 
     treeItem.Header = "Italia"; 

     treeItem.Items.Add(new TreeViewItem() { Header = "Serie A" }); 
     treeItem.Items.Add(new TreeViewItem() { Header = "Serie B" }); 

     nation_team.Items.Add(treeItem); //add all items on the control.. 

所以結果WPF是這樣的:

Italia 
     Serie A 
     Serie B 

我現在想知道,如何增加價值到意甲和乙,特別是我等着這個結果:

Italia 
     Serie A 
      Inter 
      Milan 
     Serie B 
      Avellino 
      Salerno 

我怎麼能達到這個結果? PS:如何存儲TreeView的所有值?特別是拯救意大利的所有孩子和意甲的所有孩子?我應該創建一個類是這樣的:

public TreeClass 
{ 
    string nations {get;set;} //Italia and so on.. 
    string championships {get; set;} //Serie A and Serie B.. 
    string teams {get; set;} //Inter, Milan, Avellino, Salerno... 
} 

回答

1

enter image description here

XAML方法:

<TreeView> 
    <TreeViewItem Header="Italia"> 
     <TreeViewItem Header="Serie A"> 
      <TreeViewItem Header="Milan" /> 
      <TreeViewItem Header="Inter" /> 
     </TreeViewItem> 
     <TreeViewItem Header="Serie B"> 
      <TreeViewItem Header="Avellino" /> 
      <TreeViewItem Header="Salerno" /> 
     </TreeViewItem> 
    </TreeViewItem> 
</TreeView> 

代碼背後:

public MainWindow() 
{ 
    InitializeComponent(); 

    InitTreeView(); 
} 

private void InitTreeView() 
{ 
    TreeViewItem rootNode = new TreeViewItem() { Header = "Italia" }; 

    rootNode.Items.Add(GetSeriesA()); 
    rootNode.Items.Add(GetSeriesB()); 

    treeView.Items.Add(rootNode); 
} 

private TreeViewItem GetSeriesA() 
{ 
    TreeViewItem item = new TreeViewItem() {Header = "Series A"}; 
    item.Header = "Series A"; 
    item.Items.Add(new TreeViewItem(){Header = "Inter"}); 
    item.Items.Add(new TreeViewItem(){Header = "Milan"}); 
    return item; 
} 

private TreeViewItem GetSeriesB() 
{ 
    TreeViewItem item = new TreeViewItem() { Header = "Series B" }; 

    item.Items.Add(new TreeViewItem(){Header = "Avellino"}); 
    item.Items.Add(new TreeViewItem(){Header = "Salerno"}); 
    return item; 
} 
+0

莫非你身後郵政代碼的例子嗎?因爲我是一個例子,我知道如何在XAML中做到這一點。我的數據是動態的,所以我不知道數據庫的值。 – Bender

+0

現在工作一秒:) – Matt

+0

已添加!看起來非常類似looedcode的答案,只是結構有點不同。 – Matt

0

樹型視圖有項目屬性來保存子項。

var item1 = new TreeViewItem() { Header = "Serie A" }); 
item1.Items.Add(new TreeViewItem() { Header = "Inter" }); 
item1.Items.Add(new TreeViewItem() { Header = "Milan" }); 
var item2 = new TreeViewItem() { Header = "Serie B" }); 
item2.Items.Add(new TreeViewItem() { Header = "Avellino" }); 
item2.Items.Add(new TreeViewItem() { Header = "Salerno" }); 
treeItem.Items.Add(item1); 
treeItem.Items.Add(item2); 

通常,您希望從某種形式定義的配置XML或其他數據遞歸加載此數據。

+0

這不適合我,只顯示意大利... – Bender

+1

我沒有寫出整個代碼,你仍然需要在treeItem.Items.Add(item1)中添加item1和item2; treeItem.Items.Add(ITEM2); – loopedcode

+0

當然,謝謝。 – Bender

相關問題