在C#中过滤表

时间:2012-07-24 01:06:27

标签: c# wpf

我有一个附加到C#项目的数据库,有3个表公司,产品和库存。库存列表CompanyID,ProductID和Quantity。 Combobox1列出了所有的companyID。当您选择一个时,我希望listview1仅显示Inventory中具有该CompanyID的行。

//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;

任何帮助,即使是正确方向的一点,也会受到赞赏。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

如果您希望列表视图自动更改而不编写任何代码,您可能无法实现这一点。但是,如果在组合框值更改时使用以下行重新绑定列表,它将按预期过滤列表。

listView1.ItemsSource = this.SupPartContext.SPs.Where(sp => sp.CompanyID = {get the select company from the row here})