【问题标题】:DataGridView filteringDataGridView 过滤
【发布时间】:2010-12-02 19:58:31
【问题描述】:

我正在创建一个应该能够接受任何类型列表的控件。基本上如下代码:

void BindData(IList list)
{
    BindingSource bs = new BindindSource();
    bs.DataSource = list;
    this.DataGridView.DataSource = bs;    
}

现在我有一个文本框,我想用它来过滤网格中的数据。我认为它就像设置 bs.Filter 属性一样简单,但显然不是。 bs.SupportsFiltering 也返回 false。

这是我使用 IList 的问题吗?如果是这样,是否有另一个集合类/接口可以用来实现相同的效果? (同样,我不确定列表中对象的类型。

【问题讨论】:

    标签: c# datagridview filtering ilist


    【解决方案1】:

    IBindingListView 接口通过添加对列表过滤的支持来补充 IBindingList 接口的数据绑定功能。

    可以在here 找到一些通用 IBindingListView 实现的解决方案。

    【讨论】:

      【解决方案2】:

      不知道我通过的类型,我导致手动过滤数据。 这是我的代码sn-p。它运作良好。希望它不会因为大量数据而变得太慢。 :: 手指交叉 ::

      List<object> filteredData = new List<object>();
      foreach (object data in this.DataSource)
      {
          foreach (var column in this.Columns)
          {
              var value = data.GetType().GetProperty(column.Field).GetValue(data,null)
                                                                  .ToString();
              if (value.Contains(this.ddFind.Text))
              {
                  filteredData.Add(data);
                  break;
              }
          }
       }
      
       this.ddGrid.DataSource = filteredData;
      

      【讨论】:

        猜你喜欢
        • 2018-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-11
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多