c# WPF在树视图中删除选中的项

本文关键字:删除 视图 WPF | 更新日期: 2023-09-27 17:50:22

如果我有一个这样的树视图:

的书
,,,
>项目CD
,,,

>项目

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

注意:我没有使用treenode

我有一个树视图与3树视图项目(I。电子书、cd和dvd)。动态创建节点:

TreeViewItem newChild = new TreeViewItem();
 newChild.Header = cbox;

例如,如果5个树视图被选中(为删除),那么我想删除它们

c# WPF在树视图中删除选中的项

我想你需要这样的东西:

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);
    }
}