private void RemoveChildrenFromDecks(SubDecks children) { for (int i = 0; i < children.Desks.Count; i++) { Decks.RemoveAt(children.StartIndex); } }
private SubDecks GetChildren(DeckInformation deck) { SubDecks children = new SubDecks(); children.Desks = new List <DeckInformation>(); children.StartIndex = decks.IndexOf(deck) + 1; var level = deck.ChildLevel; for (int i = children.StartIndex; i < decks.Count; i++) { var childLevel = decks[i].ChildLevel; if (level >= childLevel) { break; } children.Desks.Add(decks[i]); } return(children); }
private void UpdateChildrenPositionAndName(DeckInformation parent, SubDecks children) { if (children.Desks.Count == 0) { return; } var newStartIndex = decks.IndexOf(parent) + 1; for (int i = 0; i < children.Desks.Count; i++) { //No need to update children of a child //as they will be aslo updated in this for loop UpdateDeckName(children.Desks[i], false); if (parent.IsShowChildren) { children.Desks[i].IsShowChildren = true; children.Desks[i].Visibility = Visibility.Visible; } Decks.Insert(newStartIndex + i, children.Desks[i]); } }