ItemSelected на ListView и дополнительную информацию об объекте (Xamarin.Forms, C #) - PullRequest
0 голосов
/ 25 сентября 2019

У меня проблема.В моем приложении xamarin.forms у меня есть список, который получает в качестве источника:

var tr = JsonConvert.DeserializeObject<Items>(content);
myList.ItemsSource = tr.cars;

Классы для этих данных:

public class Items
{
    public List<Car> cars { get; set; }
}
public class Car
{
    public int id { get; set; }
    public string company { get; set; }
    public Owner owners { get; set; }
}
public class Owner
{
    public int o_id { get; set; }
    public string o_surname { get; set; }
}

Я хотел бы просмотреть дополнительную информацию, нажав наОбъект в списке.Я использую это в xaml ItemSelected = "OnSelection" и в коде:

void OnSelection(object sender, ItemTappedEventArgs e)
        {
        Car myitem = sender as Car;
        DisplayAlert("ItemSelected", $"{myitem.company.ToString()}", "Ok");
        }

Это дает мне ошибку: ссылка на объект не установлена ​​на экземпляр объекта. '

Я нашел некоторую информациюо выбранном элементе, но никто не решил мою проблему.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Другой способ получить товар через sender для справки.

Изменить:

Car myitem = sender as Car;

Кому:

Car myitem = (Car)((ListView)sender).SelectedItem;

Результат:

enter image description here

0 голосов
/ 25 сентября 2019

ItemTappedEventArgs содержит ссылку на ваш товар

void OnSelection(object sender, ItemTappedEventArgs e)
{
    Car myitem = e.Item as Car;
    DisplayAlert("ItemSelected", $"{myitem.company.ToString()}", "Ok");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...