如果我有这样的树视图:
簿
- >项
CD
- >项
并且每个项目都包含一个复选框,如何删除所有选中的复选框。
注意:我不使用treenode。
我有一个包含3个树视图项目的树视图(即书籍,CD和DVD)。动态地我创建节点:
TreeViewItem newChild = new TreeViewItem();
newChild.Header = cbox;
如果例如检查了5个treeviewitems(删除),那么我想删除它们。
答案 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);
}
}