void RestoreState(object parameter, PageStateStorage storage) { List <string> savedNavigationHistory; if (storage.TryGetParameter("DemoNavigationHistory", out savedNavigationHistory)) { navigationHistory = savedNavigationHistory; } ; object hamburgerMenuItemGroupName = navigationHistory == null ? parameter : navigationHistory[navigationHistory.Count - 1]; SelectHamburgerMenuItemByParameter(hamburgerMenuItemGroupName); if (hamburgerMenuItemGroupName.Equals(parameter)) { return; } DemoModuleViewModel demoModule = DemoModules.FirstOrDefault(x => x.DemoModule.ViewTypeName.Equals(parameter)); if (demoModule != null) { UpdateFilteredDemoModules(demoModule); NavigationLevel = NavigationLevel.DemoModule; SelectedDemoModuleIndex = storage.GetParameter("SelectedDemoModuleIndex", SelectedDemoModuleIndex); } else { NavigationLevel = NavigationLevel.Main; Navigate("MainPage", MainScreenId); } }
protected virtual void OnDemoModulesChanged() { if (DemoModules != null && CurrentPivotItem != null) { CurrentPivotItem.ViewModel = DemoModules.ElementAt(DemoModuleIndex); } }
protected virtual void OnSelectedDemoModuleChanged(DemoModuleViewModel oldValue, DemoModuleViewModel newValue) { ObservableCollection <DemoModuleViewModel> demoModules = new ObservableCollection <DemoModuleViewModel>(); ActualDemoModules.Clear(); int demoModuleIndex = DemoModules.IndexOf(newValue); for (int i = 0; i < DemoModules.Count; i++) { ActualDemoModules.Add(DemoModules[demoModuleIndex]); demoModuleIndex = (demoModuleIndex + 1) % DemoModules.Count; } }
void UpdateFilteredDemoModules(DemoModuleViewModel firstDemoModule) { int index = DemoModules.IndexOf(firstDemoModule); FilteredDemoModules.Clear(); for (int i = index; i < DemoModules.Count; i++) { if (DemoModules[i].IsVisible) { FilteredDemoModules.Add(DemoModules[i]); } } for (int i = 0; i < index; i++) { if (DemoModules[i].IsVisible) { FilteredDemoModules.Add(DemoModules[i]); } } PrevNextEnabled = FilteredDemoModules.Count > 1; }
private void OnPivotItemLoading(Pivot sender, PivotItemEventArgs args) { if (DemoModules == null) { return; } DemoModulePivotItem item = (DemoModulePivotItem)args.Item; if (!loadingByDemoModuleIndexChanged && CurrentPivotItem != null) { int oldIndex = CurrentPivotItem.Index; int newIndex = item.Index; int count = DemoModules.Count(); SetDemoModuleIndexSilently((DemoModuleIndex + count + ((newIndex - oldIndex + 2) % 3 == 0 ? 1 : -1)) % count); } loadingByDemoModuleIndexChanged = false; CurrentPivotItem = item; CurrentPivotItem.PreferedOptionsVisibility = PreferedOptionsVisibility; if (DemoModules != null) { item.ViewModel = DemoModules.ElementAt(DemoModuleIndex); } }
void ApplyFilter(string filterString) { DemoModules.ForEach(x => x.IsVisible = x.Group.Name == filterString || filterString == MainScreenId && x.DemoModule.IsHighlighted || string.IsNullOrEmpty(filterString)); ShowLabels = filterString == MainScreenId; }