2011-07-26 6 views
0

私はエンティティデータソースを持っています。これをフィルタリングしてからListViewに渡す必要があります。ここではフィルタリングされていないバージョンです(素晴らしい作品):DataSourceをListViewに適用する前にそれをフィルタリングするには

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

私が選択する方法を理解しようとしているだけで、(データベース内のフィールド/プロパティ/行)青であり、ちょうどそれらの車を渡す車リストビュー。私はこの上のバリエーションをしようとしてきた:

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

答えて

2

は、これはより

、などの
ListView1.DataSource = db.Cars.Where(car => car.Color == selectedColor); 

すべきではないあなたのdb.Cars.Any(m => m.Cars.color == selectedColor) [訂正:あるべきm.Colorの代わりm.Cars.Colorをあなたの場合あなたのCarsコレクションに、selectedColorの色の値と同じ色の値を持つ車が少なくとも1つあればtrueを返します。

1

Any()ブールを返します。必要がありますWhere()

1

usingステートメントを使用してコンテキストをラップします。これにより、コンテキストの処分が自動的に処理されます。

String selectedColor = "blue"; 
using(DataContext db = new DataContext()) 
{ 
    ListView1.DataSource = db.Cars.Where(m => m.Cars.color == selectedColor); 
    ListView1.DataBind(); 
} 
関連する問題