C#WPF删除treeview中的选中项

时间:2011-04-14 09:37:05

标签: c# wpf

如果我有这样的树视图:

簿
- >项
CD
- >项

并且每个项目都包含一个复选框,如何删除所有选中的复选框。

注意:我不使用treenode。

我有一个包含3个树视图项目的树视图(即书籍,CD和DVD)。动态地我创建节点:

TreeViewItem newChild = new TreeViewItem();

 newChild.Header = cbox;

如果例如检查了5个treeviewitems(删除),那么我想删除它们。

1 个答案:

答案 0 :(得分: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);
    }
}