C # WPF удалить отмеченные элементы в виде дерева - PullRequest
0 голосов
/ 14 апреля 2011

Если у меня есть дерево в таком виде:

Книга
-> пункты
CD
-> товар

и каждый элемент содержит флажок, как я могу удалить все выбранные флажки.

Примечание: я не использую treenode.

У меня есть древовидная структура с тремя элементами древовидной структуры (например, книга, компакт-диск и DVD). Динамически я создаю узлы:

TreeViewItem newChild = new TreeViewItem();

 newChild.Header = cbox;

если, например, проверено 5 элементов дерева (для удаления), я хочу их удалить.

1 Ответ

0 голосов
/ 14 апреля 2011

Я думаю, вам нужно что-то вроде этого:

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...