TreeView с флажками в C #

У меня есть древовидное представление с флажками в C #, я хочу, чтобы, когда пользователь проверяет один узел, автоматически проверяются все узлы, находящиеся на уровнях ниже. Кто-нибудь знает, как это сделать без запуска с рекурсивной функцией для всего дерева каждый раз, когда пользователь проверяет какой-либо узел?

Спасибо

// эта функция возвращает treeView.

   public TreeView GetTreeView()
    {

        getSubject();
        // fill the treeview with all subjects.
        foreach (Subject subject in subjects)
        {
            //for each root subject fill all the his children.
            if (subject.subjestId == subject.parentSubject)
            {
                TreeNode node = new TreeNode(subject.subjectString, subject.subjestId, subject.subjestId);
                addChild(node, subject.subjestId);
                tv.Nodes.Add(node);
            }
        }
        return tv;
    }
   // for each subject return sub subjects.
   private void addChild(TreeNode node, int parentId)
    {
        foreach (Subject subject in subjects)
        {
            if (subject.parentSubject == parentId && subject.parentSubject != subject.subjestId)
            {
                TreeNode childNode = new TreeNode(subject.subjectString, subject.subjestId, subject.subjestId);
                addChild(childNode, subject.subjestId);
                node.Nodes.Add(childNode);
            }
        }
    }
7
задан RRR 18 April 2012 в 09:22
поделиться