public void Add(IEntryViewModel item)
        {
            _updatingNavigationHistory = true;
            try
            {
                //GC.Collect(0, GCCollectionMode.Forced, true);
                if (NavigationPosition != -1)
                {
                    for (int i = 0; i < NavigationPosition; i++)
                    {
                        NavigationHistory.RemoveAt(0);
                    }
                }
                while (NavigationHistory.Count > 10)
                {
                    NavigationHistory.RemoveAt(NavigationHistory.Count - 1);
                }

                if (NavigationHistory.IndexOf(item) != -1)
                {
                    NavigationHistory.Remove(item);
                }
                NavigationHistory.Insert(0, item);
                NavigationPosition = 0;

                UpdateState();
            }
            finally
            {
                _updatingNavigationHistory = false;
            }
        }
        private void AddNavigationHistory(ViewerBaseVM item)
        {
            if (NavigationPosition != -1)
            {
                for (int i = 0; i < NavigationPosition; i++)
                {
                    NavigationHistory.RemoveAt(0);
                }
            }
            while (NavigationHistory.Count > 10)
            {
                NavigationHistory.RemoveAt(NavigationHistory.Count - 1);
            }

            if (NavigationHistory.IndexOf(item) != -1)
            {
                NavigationHistory.Remove(item);
            }
            NavigationHistory.Insert(0, item);
            NavigationPosition = 0;

            //if (jpList != null)
            //{
            //    jpList.AddToRecent(item.EmbeddedDirectoryModel.EmbeddedDirectoryEntry.ParseName);
            //    jpList.Refresh();
            //}
        }
Beispiel #3
0
 async void _frame_Navigated(object sender, NavigationEventArgs e)
 {
     try
     {
         if (e.NavigationMode == NavigationMode.Back)
         {
             var lastEntry = _history.AliveEntries.LastOrDefault();
             if (lastEntry != null)
             {
                 await _history.Remove(CancellationToken.None, lastEntry);
             }
             lastEntry = _history.AliveEntries.LastOrDefault();
             var page = e.Content as FrameworkElement;
             if (lastEntry != null && page != null)
             {
                 await _dispatcherScheduler.Run(() => page.DataContext = lastEntry.ViewModel);
             }
         }
     }
     catch (Exception)
     {
     }
 }