internal List <IModelGroupable> GetGroupMembers(IModelGroupable item) { IEnumerable <IModelGroupable> list = designerCanvas.Children.OfType <IModelGroupable>(); IModelGroupable rootItem = GetRoot(list, item); return(GetGroupMembers(list, rootItem)); }
private IModelGroupable GetRoot(IEnumerable <IModelGroupable> list, IModelGroupable node) { if (node == null || node.ParentID == Guid.Empty) { return(node); } else { foreach (IModelGroupable item in list) { if (item.ID == node.ParentID) { return(GetRoot(list, item)); } } return(null); } }
private List <IModelGroupable> GetGroupMembers(IEnumerable <IModelGroupable> list, IModelGroupable parent) { List <IModelGroupable> groupMembers = new List <IModelGroupable>(); groupMembers.Add(parent); var children = list.Where(node => node.ParentID == parent.ID); foreach (IModelGroupable child in children) { groupMembers.AddRange(GetGroupMembers(list, child)); } return(groupMembers); }
internal IModelGroupable GetGroupRoot(IModelGroupable item) { IEnumerable <IModelGroupable> list = designerCanvas.Children.OfType <IModelGroupable>(); return(GetRoot(list, item)); }