ListView上的ItemSelected以及有关对象的更多信息(Xamarin.Forms,C#)

时间:2019-09-25 12:00:10

标签: c# xaml listview xamarin xamarin.forms

我有问题。在我的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 :(得分:0)

ItemTappedEventArgs包含对您的商品的引用

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

答案 1 :(得分:0)

通过sender获取商品的另一种方式,供您参考。

更改:

Car myitem = sender as Car;

收件人:

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

结果:

enter image description here