public static async Task Navigate(this INavigation navigation, ItemViewModel item, IEnumerable <SchemaBase> items) { if (item.NavInfo != null) { if (item.NavInfo.NavigationType == NavType.Page) { if (item.NavInfo.IsDetail) { var param = new NavDetailParameter { SelectedId = item.Id, Items = items }; await navigation.NavigateToPage(item.NavInfo.TargetPage, param); } else { await navigation.NavigateToPage(item.NavInfo.TargetPage); } } else if (item.NavInfo.NavigationType == NavType.DeepLink) { Device.OpenUri(item.NavInfo.TargetUri); } } }
public static void Navigate(ItemViewModel item, IEnumerable <SchemaBase> items) { if (item.NavInfo != null) { if (item.NavInfo.NavigationType == NavType.Page) { if (item.NavInfo.IsDetail) { var param = new NavDetailParameter { SelectedId = item.Id, Items = items }; NavigationService.NavigateToPage(item.NavInfo.TargetPage, param); } else { NavigationService.NavigateToPage(item.NavInfo.TargetPage); } } else if (item.NavInfo.NavigationType == NavType.DeepLink) { Launcher.LaunchUriAsync(item.NavInfo.TargetUri).AsTask().FireAndForget(); } } }
public override async Task LoadStateAsync(NavDetailParameter detailParameter) { await base.LoadStateAsync(detailParameter); RelatedContentStatus = "LoadingRelatedContent".StringResource(); var originalSelected = detailParameter.Items.FirstOrDefault(i => i._id == detailParameter.SelectedId); if (originalSelected != null) { await _list.LoadDataAsync(false, originalSelected); } if (_list.Items == null || _list.Items.Count == 0) { RelatedContentStatus = "ThereIsNotRelatedContent".StringResource(); _list.HasMorePages = false; } else { RelatedContentStatus = string.Empty; } CanLoadMorePages = _list.HasMorePages; }
public abstract Task LoadStateAsync(NavDetailParameter detailParameter);