0

C# プロジェクトに接続されたデータベースがあり、Company、Product、および Inventory の 3 つのテーブルがあります。Inventory には、CompanyID、ProductID、および Quantity がリストされます。Combobox1 には、すべての companyID が一覧表示されます。いずれかを選択すると、listview1 にその CompanyID を持つ Inventory の行のみが表示されるようにします。

//binding DB to memorycopy   
this.DBContext = new DBEntities();

listView1.ItemsSource = this.SupPartContext.SPs;
GridViewColumn companyIDColumn = new GridViewColumn();
sNumColumn.Width = 90;
sNumColumn.Header = "companyID";
sNumColumn.DisplayMemberBinding = new Binding("COMPANYID");

GridViewColumn ProductIDColumn = new GridViewColumn();
pNumColumn.Width = 90;
pNumColumn.Header = "ProductID";
pNumColumn.DisplayMemberBinding = new Binding("PRODUCTID");
GridViewColumn quantityColumn = new GridViewColumn();
qtyColumn.Width = 90;
qtyColumn.Header = "quantity";
qtyColumn.DisplayMemberBinding = new Binding("QUANTITY");
GridView newGridview = new GridView();
newGridview.Columns.Add(companyIDColumn);
newGridview.Columns.Add(productIDColumn);
newGridview.Columns.Add(quantityColumn);

listView1.View = newGridview;

どんな助けでも、正しい方向へのポイントさえもいただければ幸いです。お時間をいただきありがとうございます。

4

1 に答える 1

0

コードを記述せずにリスト ビューを自動的に変更したい場合、おそらくそれを実現することはできません。ただし、次の行でコンボ ボックスの値が変更されたときにリストを再バインドすると、期待どおりにリストがフィルター処理されます。

listView1.ItemsSource = this.SupPartContext.SPs.Where(sp => sp.CompanyID = {get the select company from the row here})
于 2012-07-24T01:25:37.497 に答える