Если вы пытаетесь десериализовать файл JSON и создать из него некоторые элементы, я предлагаю вам использовать ScrollView
для переноса содержимого. Вполне вероятно, что одна страница не будет отображаться полностью и требуется прокрутка. сделать так:
public TestPage1()
{
StackLayout stackLayout = new StackLayout{};
ScrollView scroll = new ScrollView();
scroll.Content = stackLayout;
foreach (Categories c in categorie) {
var image = new Image
{
Source = ImageSource.FromUri(new Uri(c.imageUrl))
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand,
};
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.Tapped += Image_OnTapped;
image.ClassId = c.imageUrl;//attach data to image's `ClassId`
image.GestureRecognizers.Add(tapGestureRecognizer);
stackLayout.Children.Add(image);
}
Content = scroll;
}
Метод Image_OnTapped
private void Image_OnTapped(object sender, EventArgs e)
{
// retrieve parameter from sender's ClassId
var parm = ((Image)sender).ClassId;
}
Примечание:
Отправитель события Tapped будет элементом управленияк которому прикреплен распознаватель жестов. в вашем случае это изображение. Вы можете прикрепить свои данные к одному из свойств изображения, чтобы получить к нему доступ из обработчика событий.
image.ClassId = c.imageUrl;//attach data to image's `ClassId`
И получить значение из метода Image_OnTapped
следующим образом:
var parm = ((Image)sender).ClassId;