Exemple #1
0
 void BeforeItemAdded(IPanePageViewModel page)
 {
     if (!history.Contains(page))
     {
         page.CloseRequested.Subscribe(_ => RemoveAll(page));
     }
 }
 void BeforeItemAdded(IPanePageViewModel page)
 {
     if (page.CloseRequested != null && !history.Contains(page))
     {
         RegisterDispose(
             page,
             page.CloseRequested.Subscribe(_ => RemoveAll(page)));
     }
 }
Exemple #3
0
        public int RemoveAll(IPanePageViewModel page)
        {
            var count = 0;

            while (history.Remove(page))
            {
                ++count;
            }
            return(count);
        }
Exemple #4
0
        /// <inheritdoc/>
        public void NavigateTo(IPanePageViewModel page)
        {
            Guard.ArgumentNotNull(page, nameof(page));

            history.Insert(index + 1, page);
            ++Index;

            if (index < history.Count - 1)
            {
                history.RemoveRange(index + 1, history.Count - (index + 1));
            }
        }
Exemple #5
0
        void ItemRemoved(int removedIndex, IPanePageViewModel page)
        {
            if (removedIndex <= Index)
            {
                --Index;
            }

            if (!history.Contains(page))
            {
                if (Content == page)
                {
                    page.Deactivated();
                }
                page.Dispose();
            }
        }
        public void RegisterDispose(IPanePageViewModel page, IDisposable dispose)
        {
            if (pageDispose == null)
            {
                pageDispose = new Dictionary <IPanePageViewModel, CompositeDisposable>();
            }

            CompositeDisposable item;

            if (!pageDispose.TryGetValue(page, out item))
            {
                item = new CompositeDisposable();
                pageDispose.Add(page, item);
            }

            item.Add(dispose);
        }
        void ItemRemoved(int removedIndex, IPanePageViewModel page)
        {
            if (removedIndex <= Index)
            {
                --Index;
            }

            if (!history.Contains(page))
            {
                CompositeDisposable dispose = null;

                if (pageDispose?.TryGetValue(page, out dispose) == true)
                {
                    dispose.Dispose();
                    pageDispose.Remove(page);
                }
            }
        }