/// <summary> /// Нажатие кнопки Поиск /// </summary> private async void Search_Click(object sender, EventArgs e) { SearchQueryPage page = new SearchQueryPage(context.SearchContext); await Navigation.PushModalAsync(page, true); App.Current.ModalPopping += HandleModalPopping; }
/// <summary> /// Перехват возврата из модальной страницы /// </summary> public void HandleModalPopping(object sender, ModalPoppingEventArgs e) { if (e.Modal is SearchQueryPage) { SearchQueryPage page = e.Modal as SearchQueryPage; if (page.SearchQuery != string.Empty) { context.SearchContext = page.SearchContext; context.DoSearch(page.SearchQuery); } App.Current.ModalPopping -= HandleModalPopping; } else if (context.Mode == PageMode.Url && context.Items == null || context.Items.Count == 0) { try { carrouselPage.CurrentPage = carrouselPage.Children[1]; } catch { } App.Current.ModalPopping -= HandleModalPopping; // Открыть корневую структуру if (context.UrlItem == null) { context.GetRootObjects(true); } // Открыть структуру головного объекта else { context.OpenParentStructure(); } } }