2011-04-14 36 views
0

如果我有這樣一個TreeView:在樹狀C#WPF刪除選中的項目


      - >項目
CD
      - >項目

,每項目包含一個複選框,我如何刪除所有選中的複選框。

注意:我不使用treenode。

我有一個樹視圖與3樹視圖項目(即書,CD和DVD)。動態我創建節點:

TreeViewItem newChild = new TreeViewItem(); 

newChild.Header = cbox; 

舉例來說,如果被檢查5個treeviewitems(用於刪除),然後我想刪除它們。

+0

這是WPF或WinForm的?如果不是TreeNode,那你在用什麼。請詳細說明。我們不是通靈者(還)。 – 2011-04-14 09:38:42

+0

我正在使用WPF .. – bubye 2011-04-14 09:39:08

+0

還需要更多信息 – 2011-04-14 09:39:53

回答

0

我想你需要的東西是這樣的:

void DeleteSelectedItems(TreeView root) 
{ 
    var todelete = List<TreeViewItem>(); 
    GetSelectedItems(root.Items, todelete); 
    foreach(var it in todelete) 
    { 
     var parent = it.Parent; 
     parent.Items.Remove(it); 
    } 
} 

void GetSelectedItems(ItemsCollection tree, List<TreeViewItem> todelete) 
{ 
    foreach(var it in tree) 
    { 
     if (((it as TreeViewItem).Header as CheckBox).Checked) 
      todelete.Add(it); 
     else 
      GetSelectedItems(it.Items, todelete); 
    } 
}