コード例 #1
0
ファイル: Pane.cs プロジェクト: ckimpel/FSE-2011-PDE
        protected override void OnVisualParentChanged(DependencyObject oldParent)
        {
            DockingManager dockManager = GetManager();

            if (dockManager != null)
            {
                dockManager.RefreshContents();
            }

            base.OnVisualParentChanged(oldParent);
        }
コード例 #2
0
        protected override void OnContentChanged(object oldContent, object newContent)
        {
            base.OnContentChanged(oldContent, newContent);

            if (_manager != null)
            {
                _manager.RegisterFloatingWindow(this);
                _manager.RefreshContents();
            }

            UpdateContentTitle();
        }
コード例 #3
0
ファイル: Pane.cs プロジェクト: ckimpel/FSE-2011-PDE
        protected override void OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            DockingManager dockManager = GetManager();

            if (dockManager != null)
            {
                dockManager.RefreshContents();
            }

            if (e.NewItems != null)
            {
                CheckItems(e.NewItems);
            }

            HasSingleItem = (Items.Count == 1);

            if (_lastSelectedContent != null &&
                !Items.Contains(_lastSelectedContent))
            {
                _lastSelectedContent = null;
            }

            if ((e.NewItems == null || e.NewItems.Count == 0) &&
                (e.OldItems != null && e.OldItems.Count > 0))
            {
                if (_lastSelectedContent != null &&
                    Items.Contains(_lastSelectedContent))
                {
                    SelectedItem = _lastSelectedContent;
                }
            }

            //let base class handle SelectedIndex/Item value
            base.OnItemsChanged(e);

            if (Items.Count > 0)
            {
                int currentIndex = SelectedIndex;

                if (currentIndex < 0 ||
                    currentIndex >= Items.Count)
                {
                    currentIndex = Items.Count - 1;
                }

                SelectedItem = Items.GetItemAt(currentIndex);
            }

            RefreshContainsActiveContentProperty();

            if (Items.Count > 0)
            {
                var parentPanel = Parent as ResizingPanel;
                while (parentPanel != null && parentPanel.IsLoaded)
                {
                    parentPanel.UpdateLayout();
                    parentPanel.InvalidateMeasure();
                    parentPanel = parentPanel.Parent as ResizingPanel;
                }
            }
        }