我知道有很多类似的问题,我花了很多时间寻找可能的解决方案。但我仍然不确定最简单的方法是什么。
目标是按时间戳排序显示LogItems
(时间戳、严重级别、消息),DataGridView
并允许用户按严重级别过滤项目。
这正是我(不需要)需要的:
DataGridView
a到对象列表/集合的单向数据绑定。无需用户通过编辑对象DataGridView
或添加/删除对象DataGridView
。但是DataGridView
当我向该基础列表/集合添加或删除对象时,应该会自动更新。- 对象有一个时间戳 (
DateTime
),并应按此时间戳排序。我不在乎列表本身是否使它们保持排序(这样SortedList<T>
会很好,但它不存在),或者是否由DataGridView
or aBindingSource
负责排序。用户无需通过单击列标题来设置排序。 - 基于单个列的值(严重性)的简单过滤。
这里我想出了一些方法:
- 使用 a
BindingList<T>
作为基础集合不起作用,因为它不支持排序和过滤。 BindingSource
如果基础集合不支持排序和过滤,则用 a 包装一些集合将无济于事。- 编写一个实现
IBindingListView
. 这看起来很复杂,我只需要IBindingListView
提供的功能的一个子集。而且我太懒了。 - 使用
BindingListView
sourceforge 项目。这对于我需要的东西来说可能太重了,如果我不需要的话,我不想依赖第三方库。
什么是一个简单而快速的解决方案?