我有快速传入的数据(基本上是表格数据集的行)。当我收到这些行时,我将它们合并/插入到数据缓存中。数据必须显示在WPF控件(项目控件)上。
问题: 数据不直接绑定到用户控件。在将数据显示给数据之前,将对数据应用一系列过滤器和分组/聚合(使用LINQ完成)。因此,用户在控件上看到的内容可能会发生巨大变化(例如,他更改了分组,然后所有行都会发生变化)。
这就是我现在正在做的事情: 当数据快速进入非常时,线程每2秒获取一次数据,应用过滤器,然后对数据进行分组并将数据集绑定到wpf项控件。 这绝对不是很好,因为每2秒将新数据表设置为数据源。一段时间后,应用程序变得迟钝。
解决这个问题的最佳方法是什么?感谢。
答案 0 :(得分:0)
我认为解决这个问题的最佳方法是创建一个view source并将显示元素直接绑定到那个 - 这样你就可以使用内置的东西来获得分组和过滤系统了。 / p>
然后我会调查virtualisation and optimisation,这有助于展示大量数据。
作为一个更一般的说明,我会说你是否真的需要所有那些数据以及那个频率显示;它可能是一种更好的用户体验(并且更容易在机器上)来聚合数据并只显示相关细节,然后用户可以根据需要进一步深入研究。