【问题标题】:Filtering WinForm DataGridView过滤 WinForm DataGridView
【发布时间】:2010-11-10 15:07:57
【问题描述】:

我有一个绑定到自定义类型列表(继承 BindingList)的 DataGridView 控件。我希望能够根据简单的列值(布尔类型)过滤行。最终,功能目标是能够将项目标记为已删除,但只是在数据源中将其标记为已删除,而不是删除它。只需将其从网格中删除,而不是从数据源中删除。

有什么想法吗?

【问题讨论】:

  • 请注意,我尝试使用 Linq 将我的 DataGridView 绑定到数据子集,但它没有返回相同的类型(我的自定义 SortableBindingList 类型),我只是无法转换它。他不让我……
  • 你能添加你的绑定代码和数据源吗?
  • 这是我获取 SortableBindingList 代码的文章:timvw.be/presenting-the-sortablebindinglistt-take-two

标签: winforms datagridview filter


【解决方案1】:

您可以使用 LINQ 过滤数据,然后创建一个新的 BindingList 并将其重新分配给 dataGridView。

假设您在 person 类中有一个名为 WillBeDeleted 的标志:

dataGridView1.DataSource = new SortableBindingList<Person>
                           (SampleData.Where(p => !p.WillBeDeleted).ToList());

祝你好运!

【讨论】:

    【解决方案2】:

    为了更清楚,我使用这段代码创建了 SortableBindingList http://www.timvw.be/presenting-the-sortablebindinglistt-take-two/(我将其翻译成 VB.NET)

    然后,我有自己的集合对象,其中包含属性和我的实体的 SortableBindingList。

    Private mListeNotes 作为新的 SP1ZSortableBindingList(Of SP5004ZNoteEvolutiveEntite)

    这就是我将网格绑定到的内容,因此我现在可以对其进行排序。所以我需要它保持这种类型,而不是通用列表。

    【讨论】:

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