我有一个从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;
}
}
答案 0 :(得分: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;
}