public async Task Navigate(CancellationToken ct, INavigationRequest request) { await _innerRequestNavigation.Navigate(ct, request); var firstEntry = _applicationFrame.BackStack.FirstOrDefault(); if (firstEntry != null && firstEntry.Source.Equals(_entryPointUri)) { await _dispatcherScheduler.Run(() => _applicationFrame.RemoveBackEntry()); } }
public async Task Navigate(CancellationToken ct, INavigationRequest request) { SettingsFlyoutDefinition definition; if (!_definitions.TryGetValue(request.PageName, out definition)) { await _inner.Navigate(ct, request); return; } var viewModel = _viewModelFactory.ResolveViewModel(definition.ViewModelType); viewModel.Initialize(request); await _dispatcher.Run(() => { var flyout = (SettingsFlyout)Activator.CreateInstance(definition.FlyoutType); flyout.DataContext = viewModel; flyout.Unloaded += (sender, args) => _viewModelFactory.ReleaseViewModel(viewModel); flyout.Show(); }); await viewModel.Load(ct); }
public static Task Navigate(this IRequestNavigation requestNavigation, CancellationToken ct, string viewName) { return(requestNavigation.Navigate(ct, viewName, Enumerable.Empty <KeyValuePair <string, string> >())); }
public static Task Navigate(this IRequestNavigation requestNavigation, CancellationToken ct, string viewName, IEnumerable <KeyValuePair <string, string> > parameters, object entity = null) { return(requestNavigation.Navigate(ct, new NavigationRequest(viewName, parameters.ToDictionary(kvp => kvp.Key, kvp => kvp.Value), entity))); }