Я пытаюсь создать собственную домашнюю страницу, где страницы отображаются в виде горизонтальной прокрутки как «Службы», поэтому каждая из них должна переходить на другую страницу.
У меня есть такое представление:
<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: 'Страница не должнауже есть родитель.
Любая подсказка будет оценена!