使用复选框windows store app c获取listview的选中项目

我正在开发一个Windows商店应用程序。 我已经实现了一个列表视图。 listview包含图像,文本块和复选框控件。 我的listview从互联网上获取数据我已经用listview和binded数据进行了xml解析到listview。 我想从listview获取所有数据,其中复选框在listview中被选中。 我的xaml代码是:

                 

listview的数据源:

 XDocument xmlDoc = XDocument.Parse(responseString); var Categories = xmlDoc.Descendants("product").ToArray(); List displaylst = new List(); //ProductData is my Class. foreach (var cat in Categories) { string prId = cat.Elements("id_products").Select(r => r.Value).FirstOrDefault(); List Image = cat.Descendants("images").Elements("src").Attributes("largimage").Select(r => r.Value).ToList(); List Image_code = cat.Descendants("images").Elements("src").Select(r => r.LastAttribute.Value).ToList(); int i = 0; foreach (string img in Image) { displaylst.Add(new ProductData { Id = prId, Image = img, Image_code = Image_code[i] }); i++; } } display.ItemsSource = displaylst; 

现在在一个按钮上单击我想获取产品的数据,如prId,Image,Image_code,其中复选框从listview中检查并将其放入简单列表中。

我怎么能这样做请帮助我。 提前致谢。

首先,让我们为您的ProductData类添加一个属性

 public class ProductData { public string Id { get; set; } public string Image { get; set; } // I dont know exactly what's in this class // ... more properties // Add this one public bool IsSelected { get; set; } } 

现在我们在ProductData类中有一个布尔IsSelected,我们可以知道选择了哪个。

在第二次foreach改变这一行

 // Set IsSelected to false by default displaylst.Add(new ProductData { IsSelected = false, Id = prId, Image = img, Image_code = Image_code[i] }); 

并将复选框的“IsChecked”属性绑定到IsSelected

  

选中其中一个复选框时,通过绑定,关联的productData IsSelected属性将自动变为“true”。

所以现在你只需要做一个新的列表并选择只有IsSelected为true的ProductData:

 List listOfSelectedProducts = (from product in displaylst where product.IsSelected == true select product).ToList(); 

在这里,您可以获得仅包含所选产品的ProductData列表。