Перейдите на определенную страницу, определенную в модели, когда элемент нажат - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь создать собственную домашнюю страницу, где страницы отображаются в виде горизонтальной прокрутки как «Службы», поэтому каждая из них должна переходить на другую страницу.

У меня есть такое представление:

           <controls:HorizontalScrollView HeightRequest="160" 
                                   Orientation="Horizontal"  
                                   ItemsSource="{Binding OwnerServicesList}"
                                   x:Name="OwnerServicesSlider"
                                   ItemSelected="OwnerServicesSlider_ItemSelected">

                <controls:HorizontalScrollView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Margin="10,0,5,0" WidthRequest="100" HeightRequest="100">
                                <Image HorizontalOptions="Start"  Source="{Binding ImgUrl}" WidthRequest="100" HeightRequest="100" />
                                <Label Style="{StaticResource BoldLabel}" HorizontalTextAlignment="Center" FontSize="13" LineBreakMode="TailTruncation" Text="{Binding Name}" TextColor="Black"/>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>

Я использую пользовательский контроллер для представления горизонтальной прокрутки, который работает как просмотр списка, каждый элемент при нажатии вызывает событие ItemTappedEventArgs.

Внутри моегоМодель я объявил public Page Page { get; set; } для каждого объекта в представлении прокрутки.

Что я пытаюсь сделать, так это восстановить постучавший элемент и восстановить страницу, хранящуюся в нем, чтобы я мог перейти на эту конкретную страницу.

Пока у меня есть что-то вроде этого:

private void OwnerServicesSlider_ItemSelected(object sender, ItemTappedEventArgs e)
        {
            var service = OwnerServicesSlider.SelectedItem as Services;   
            Navigation.PushAsync(service.Page);
        }

Он не показывает ошибок, но когда я его запускаю, я получаю

InvalidOperationException: 'Страница не должнауже есть родитель.

Любая подсказка будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...