示例#1
0
        internal void Remove(TabGroup tabGroup)
        {
            int index = stackedContent.IndexOf(tabGroup);

            if (index < 0)
            {
                return;
            }
            if (stackedContent.Count == 1)
            {
                ActiveIndex = -1;
                stackedContent.Remove(tabGroup);
            }
            else
            {
                if (ActiveIndex == index)
                {
                    int newIndex = index == 0 ? index + 1 : index - 1;
                    SetActive(stackedContent[newIndex]);
                    ActiveIndex = newIndex;
                }
                var current = stackedContent[ActiveIndex];
                stackedContent.Remove(tabGroup);
                ActiveIndex = stackedContent.IndexOf(current);
                Debug.Assert(ActiveIndex >= 0);
            }
            tabGroupCollectionChanged.Raise(this, new TabGroupCollectionChangedEventArgs(false, tabGroup));
        }