我有一些要求在我的数据网格中实现一个非常非标准的排序,网格当前绑定到一个 DataView 并设置了原始行数据行过滤器,数据是实时的,所以我每秒接受一个计时器的更改显示对基础数据表所做的任何更改。网格是只读的,它纯粹是显示实时数据。
为简洁起见,我将跳过排序的详细信息。为了解决这个问题,我实现了一些自定义数据视图(只读),它接受一个 DataView 作为源数据(允许我仍然过滤行状态并为实时数据保留虚拟网格模式)。此集合/数据视图可以绑定到网格。我的问题是使用基础数据视图的任何更改来更新自定义数据视图的内部集合。我一开始尝试收听基础数据视图的 ListChanged 事件,但即使我只在基础数据表上添加一行并调用接受更改,我也会得到 Reset 事件类型,这意味着我必须刷新整个集合 - 我们可以谈论仅仅因为对单行的更新,数千行被刷新(并重新排序)。
有没有人有这方面的经验?我想知道网格是如何做到的,我知道即使你给它一个数据表,它实际上也会将自己绑定到表的默认视图,所以这是否意味着数据网格正在从它的视图重新加载整个数据行集合,即使是单行更新?
抱歉发了这么长的帖子!!
欣赏任何输入、变通方法甚至设计替代方案……
谢谢阿德里安