c# WPF在树视图中删除选中的项
本文关键字:删除 视图 WPF | 更新日期: 2023-09-27 17:50:22
如果我有一个这样的树视图:
的书
,,,
>项目CD
,,,
和每个项目包含一个复选框,我如何删除所有选中的复选框。
注意:我没有使用treenode
我有一个树视图与3树视图项目(I。电子书、cd和dvd)。动态创建节点:
TreeViewItem newChild = new TreeViewItem();
newChild.Header = cbox;
例如,如果5个树视图被选中(为删除),那么我想删除它们
我想你需要这样的东西:
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);
}
}