示例#1
0
        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);
        }
示例#2
0
 public int IndexOf(SessionListItem item) => _FlattenItems.IndexOf(item);