无法迭代Xamarin Forms中的ListView项目

时间:2018-03-20 18:43:31

标签: c# listview xamarin xamarin.forms

当我写这段代码时:

ListView lv = new ListView();

foreach (ListViewDataItem item in lv.Items)
{

}

我得到" 无法找到ListViewDataItem的类型或名称"

在lv对象下也找不到

项目

基本上我需要遍历ListView的每一行并设置一个使用项目模板添加的复选框。

我该如何实现?

2 个答案:

答案 0 :(得分:1)

循环浏览列表视图的正确方法是访问它的ItemsSource。然后,您可以将项目投射到视图模型中并使用它进行处理。

foreach (var item in lv.ItemsSource)
{
    // cast the item 
    var dataItem = (ListViewDataItem) item;

    // then do stuff with your casted item
    ...
}

答案 1 :(得分:0)

我使用了for循环来遍历listView ChildCount,将一个var作为GetChildAt的Tag分配为ImageAdapterViewHolder,然后将复选框设置为false。

class ImageAdapterViewHolder : Java.Lang.Object
{
    public ImageView SavedImage { get; set; }
    public TextView Description { get; set; }
    public CheckBox SelectImage { get; set; }

}

for (int i = 0; i < listView.ChildCount; i++)
{
    var row = listView.GetChildAt(i).Tag as ImageAdapterViewHolder;
    row.SelectImage.Checked = false;
}