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());
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public static Task Navigate(this IRequestNavigation requestNavigation, CancellationToken ct, string viewName)
 {
     return(requestNavigation.Navigate(ct, viewName, Enumerable.Empty <KeyValuePair <string, string> >()));
 }
Esempio n. 4
0
 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)));
 }