3

asp.net ツリー ビュー コントロールから継承したカスタム ツリー ビューがあります。n レベルの親子関係を持つ。いくつかの計算に基づいて、子ノードを確認しました。すべての子ノードがチェックされている場合、親ノードをチェックする必要があります。いくつかの計算に基づいて子ノードをチェックしているため、チェックイベント後に使用できません。そのためのC#コードを提供してもらえますか?

    private TreeNode _parentNode;
private void CheckedParent(TreeNodeCollection nodeCollection)
        {
            foreach (TreeNode node in nodeCollection)
            {
                if (node.ChildNodes.Count > 0)
                {
                    _parentNode = node;
                    CheckedParent(node.ChildNodes);
                }
                else
                {
                    bool allChildChecked = true
                    foreach (TreeNode childNode in nodeCollection)
                    {
                        if (!childNode.Checked)
                        {
                            allChildChecked = false;
                        }
                    }

                }
            }
            if (allChildChecked )
            {
                _parentNode.Checked = true;
                _isAllChildChecked = false;
            }
}
4

1 に答える 1

2

このメソッドはtrue、すべての子ノードがチェックされている場合に戻ります。それ以外の場合は戻りますfalse

    private bool AllChildChecked(TreeNode currentNode)
    {
        bool res = true;

        foreach (TreeNode node in currentNode.ChildNodes)
        {
            res = node.Checked;
            if (!res) break;

            res = this.AllChildChecked(node);
            if (!res) break;
        }

        return res;
    }
于 2012-07-23T15:00:35.133 に答える