private void InsertGroup(TreeItem toInsert, TreeItem target, bool before) { if (target == null) { FullDetails.Add(toInsert); } else { int index; if ((PropType)target.Item == PropType.Group) { index = FullDetails.IndexOf(target) + (before ? 0 : 1); } else { index = FullDetails.IndexOf(target.Parent) + 1; } FullDetails.Insert(index, toInsert); } }
private void InsertFullDetailsProperty(TreeItem toInsert, TreeItem target, bool before) { if (target == null) { // Drop in the last group FullDetails.Last().AddChild(toInsert); } else if ((PropType)target.Item == PropType.Group) { if (before) { int index = FullDetails.IndexOf(target); if (index > 0) { index--; } FullDetails[index].AddChild(toInsert); } else { target.InsertChild(0, toInsert); } } else { int index = target.Parent.Children.IndexOf(target) + (before ? 0 : 1); if (index < target.Parent.Children.Count) { target.Parent.InsertChild(index, toInsert); } else { target.Parent.AddChild(toInsert); } } }