从BindingListView获取过滤列表

时间:2015-06-08 19:23:44

标签: c# winforms

在WinForm项目中,我使用Andrew Davey's BindingListView implementation作为源的jQuery数据网格视图。我用它来使用其他控件过滤网格。在我的演示者类中,我希望能够遍历当前已过滤的产品并将其更新为新值。

然而,似乎BindingListView没有任何方法来获取已过滤的List,因此以下代码只返回所有产品,而不仅仅是网格中可见的产品。

是否有办法不必遍历DataGridView行,以获取可见的产品?

BindingListView<Product>

编辑:

我直接绑定到DataGridView数据源,即

foreach (Product product in bindingListView) { UpdateViewCellValue(newAmount, columnIndex, product); model.UpdateReplenishAmount(product.ID, newAmount); }

1 个答案:

答案 0 :(得分:0)

要获取当前可见的行,我已将以下方法添加到我的视图中

 public List<int> GetCurrentlyVisibleRowProductIDs()
 {
      List<int> productIDs = new List<int>();

      foreach (DataGridViewRow row in dgvReplenish.Rows)
      {
              productIDs.Add((int)row.Cells[(int)ProductColumnIndex.ID].Value);

     }
    return productIDs;
 }

然后从我的演示者那里调用它,在模型中查找匹配的产品

 private IList<Product> VisibleProducts()
 {
     var productsIDs = view.GetCurrentlyVisibleRowProductIDs();

     return model.GetProductsByID(productsIDs);
 }