如何在将数据源应用于ListView之前对其进行筛选?

本文关键字:筛选 数据源 ListView 应用于 | 更新日期: 2023-09-27 18:03:30

我有一个实体数据源,我需要在将其传递给ListView之前对其进行过滤。以下是未经过滤的版本(效果很好):

DataContext db = new DataContext();
ListView1.DataSource = db.Cars;
ListView1.DataBind();

我试图了解如何只选择蓝色的汽车(数据库中的字段/属性/行),并将这些汽车传递给ListView。我一直在尝试这种变化:

String selectedColor = "blue";
DataContext db = new DataContext();
ListView1.DataSource = db.Cars.Any(m => m.Cars.color == selectedColor);
ListView1.DataBind();

如何在将数据源应用于ListView之前对其进行筛选?

不应该更像

ListView1.DataSource = db.Cars.Where(car => car.Color == selectedColor);

你的db.Cars.Any(m => m.Cars.color == selectedColor)[更正:应该是m.Color而不是m.Cars.Color,如果你想用它的方式]语句将返回true如果在你的汽车集合中至少有一个汽车的颜色值为selectedColor.

Any()返回bool值。你需要Where()

我还会使用using语句包装您的上下文。这会自动处理上下文的处理。

String selectedColor = "blue";
using(DataContext db = new DataContext())
{
   ListView1.DataSource = db.Cars.Where(m => m.Cars.color == selectedColor);
   ListView1.DataBind();
}