Exemplo n.º 1
0
        private void navigator_roots_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            T1 root;

            switch (e.Action)
            {
            case NotifyCollectionChangedAction.Add:
                root = (T1)e.NewItems[0];
                OnRootAdded(root);

                OnAdded(root);
                break;

            case NotifyCollectionChangedAction.Remove:
                root = (T1)e.OldItems[0];

                if (viewer.OpenedRoot == root)
                {
                    viewer.Close(root);
                    if (NavigateUpperOnRemoved)
                    {
                        var near = roots.ElementNear(e.OldStartingIndex);
                        NavigateTo(near);     //  рядом или null
                    }
                }
                OnRootRemoved(root);
                break;
            }
        }