Xamarin формирует передачу данных CollectionView - PullRequest
0 голосов
/ 29 апреля 2020

Мне нужна помощь, я прохожу курс обучения Pluralsight по Xamarin и не могу передать данные из моего CollectionView в мой DetailPage.

Способ, которым я его настроил, заключается в том, что мой Contructor для мой DetailPage получает «P ie» в качестве аргумента и на странице, где я вызвал currentSelection и передал данные, по какой-то странной причине, равной нулю.

      private async void PiesCollection_SelectionChanged(object sender, SelectionChangedEventArgs e) {

            Pie selectedItem = e.CurrentSelection as Pie;
            await Navigation.PushAsync(new DetailPage(selectedItem));
        }
    }
    public DetailPage(Pie p) {
            InitializeComponent();
            getData(p);
        }

        private void getData(Pie pie) {
            img_pie.Source = pie.ImageUrl;
            lbl_pieName.Text = pie.PieName;
            lbl_price.Text = pie.Price.ToString("C");
            lbl_stock.Text = pie.InStock;
            lbl_description.Text = pie.Description;
        }

Когда я ставлю Точка останова, я вижу, что «CurrentSelection» содержит мои данные, но мой SelectedItem, который я передаю на другую страницу, получает ноль enter image description here

Мне очень жаль, если это глупый вопрос

1 Ответ

1 голос
/ 29 апреля 2020

CollectionView позволяет выбрать несколько элементов, поэтому CurrentSelection содержит список значений

private async void PiesCollection_SelectionChanged(object sender, SelectionChangedEventArgs e) {

   if (e.CurrentSelection != null && e.CurrentSelection.Count > 0)
     Pie selectedItem = e.CurrentSelection[0] as Pie;
     await Navigation.PushAsync(new DetailPage(selectedItem));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...