Получить все выбранные узлы Dev Components AdvanceTreeView Control

Я использую элементы управления Dev Components Advance TreeView в своем приложении C# Win Forms. Узлы древовидного представления имеют флажки для выбора/отмены выбора узла. Я включил множественный выбор узлов в древовидном представлении. Я хочу, чтобы все выбранные узлы были «отмечены/сняты» для любого узла. Я попытался использовать свойство "SelectedNodes" в дереве, которое возвращает коллекцию выбранных узлов, но каким-то образом оно всегда возвращает узел "1", например. последний выбранный узел.

Обновить Проблема заключается в выборе дочерних узлов. Если я выбираю все родительские узлы, я получаю правильный счет, но в случае дочерних узлов счетчик всегда равен 1. Пожалуйста, предложите


person V.B    schedule 26.10.2015    source источник


Ответы (1)


Вы можете использовать простую рекурсивную функцию, просто передайте здесь корневой узел. Если вам не нужна рекурсия, подключите выбранный список узлов к обработчику событий для проверки/снятия отметки.

     static public List<HierarchyNode> GetCheckedNodes(HierarchyNode node)
    {
        var nodes = new List<HierarchyNode>();

        foreach (HierarchyNode childNode in node.Nodes)
        {
            nodes.AddRange(GetCheckedNodes(childNode));
        }

        if (node.Checked)
        {
            nodes.Add(node);
        }

        return nodes;
    }
person Mark Terry    schedule 26.11.2015