Пример #1
0
        /// <summary>
        /// Initializes the view.
        /// </summary>
        public override void Initialize()
        {
            base.Initialize();

            _presentedTabs = new List <Tab>();
            if (TabItemTemplate != null)
            {
                TabItemTemplate.Deactivate();
            }

            _presentedTabs.AddRange(TabSwitcher.GetChildren <Tab>(x => !x.IsTemplate && !x.IsDestroyed, false));
            if (TabItemTemplate == null)
            {
                // initialize (static) tabs
                if (_presentedTabs.Count > 0 && !StaticTabsGenerated)
                {
                    StaticTabsGenerated = true;
                    TabHeaderList.Content.DestroyChildren();

                    // go through static objects and initialize tab headers
                    foreach (var tab in _presentedTabs)
                    {
                        CreateTabHeader(tab);
                    }

                    // select first tab by default
                    SelectTab(0, false);
                }
            }
        }
Пример #2
0
        internal void InitTabs()
        {
            Items.Clear();
            if (ItemsDataSource != null)
            {
                foreach (var item in ItemsDataSource)
                {
                    var newitem = new TabItem();

                    if (TabItemTemplate != null)
                    {
                        newitem.Content = TabItemTemplate.LoadContent();
                    }

                    if (TabHeaderItemTemplate != null)
                    {
                        newitem.Header = TabHeaderItemTemplate.LoadContent();
                    }

                    newitem.DataContext = item;
                    Items.Add(newitem);
                }
            }
        }
Пример #3
0
        void ItemsDataSource_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
            {
                if (e.NewStartingIndex > -1)
                {
                    foreach (var item in e.NewItems)
                    {
                        var newitem = new TabItem();

                        if (TabItemTemplate != null)
                        {
                            newitem.Content = TabItemTemplate.LoadContent();
                        }

                        if (TabHeaderItemTemplate != null)
                        {
                            newitem.Header = TabHeaderItemTemplate.LoadContent();
                        }

                        newitem.DataContext = item;

                        Items.Add(newitem);

                        this.SelectedItem = newitem;
                    }
                }
            }
            else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
            {
                if (e.OldStartingIndex > -1)
                {
                    Items.RemoveAt(e.OldStartingIndex);
                }
            }
            else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Replace)
            {
                Items.RemoveAt(e.OldStartingIndex);

                var newitem = new TabItem();

                if (TabItemTemplate != null)
                {
                    newitem.Content = TabItemTemplate.LoadContent();
                }

                if (TabHeaderItemTemplate != null)
                {
                    newitem.Header = TabHeaderItemTemplate.LoadContent();
                }

                newitem.DataContext = e.NewItems[0];

                Items.Add(newitem);

                Items.Insert(e.NewStartingIndex, newitem);
            }
            else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Reset)
            {
                InitTabs();
            }
        }