public bool ForEach(Func <CadObjTreeItem, int, bool> func, int level) { if (!func(this, level)) { return(false); } if (!IsExpand) { return(true); } if (mChildren == null) { return(true); } int i; for (i = 0; i < mChildren.Count; i++) { CadObjTreeItem item = mChildren[i]; if (!item.ForEach(func, level + 1)) { return(false); } } return(true); }
public int Find(Func <CadObjTreeItem, bool> match) { int idx = -1; int cnt = 0; mRoot.ForEach((item) => { if (match(item)) { idx = cnt; return(false); } cnt++; return(true); }); if (!ShowRoot && idx >= 0) { idx--; } return(idx); }