private void HandleNewChildSession(object sender, Session child) { var parentSession = (Session)sender; var entry = sessionMap[parentSession]; var rootItem = entry.SessionListItem; // owner var childItem = new SessionListItem(child); entry.ChildItems.Add(childItem); if (rootItem.HasToggleButton == false) { rootItem.HasToggleButton = true; rootItem.IsExpanded = true; } if (rootItem.IsExpanded == true) { var index = _FlattenItems.IndexOf(rootItem); if (index < 0) { throw new Exception("Session owner not found"); } _FlattenItems.Insert(index + entry.ChildItems.Count, childItem); RaiseItemAdded(index + entry.ChildItems.Count); } else { rootItem.IsFlagged = true; } ChildSessionAdded?.Invoke(sender, child); }
public int IndexOf(SessionListItem item) => _FlattenItems.IndexOf(item);