对 GUI 元素进行排序而不是对数据进行排序并让 GUI 显示排序的数据是否更可取



一个关于排序的相关问题可能与回答这个问题有关。我已经意识到VirtualTreeView提供了一种自己的排序方法,但它似乎比仅仅对数据本身进行排序并让GUI刷新要慢。

操作 GUI 元素而不是它们显示的数据是否曾经是"好的做法",为什么?

通常,

您希望在基础数据和该数据的可视表示形式之间保持分离。考虑到这一点,人们通常更愿意在 GUI 级别实现排序,而不是在数据级别实现排序。

例如,这允许您显示相同数据的多个视图,但排序方式不同。这就是您在模型和视图之间保持清晰分离所获得的好处。

在您的情况下,这两个选项的实现显示出性能差异。我从中得出的结论是,在 GUI 级别实现时可以优化排序。这就是我处理这个问题的方式。

我不会对数据进行排序,只是一个索引。您说您在列表中收集数据,然后将这些列表分组到组列表中。我不会对数据进行排序,而是保持数据原样,并生成一个简单的列表(或多个列表),其中包含对数据的引用并对其进行排序。使用该列表填充虚拟列表视图。

这就是大卫提到的那种中间层。通过保留多个索引,您可以根据不同的条件进行排序,而无需对基础数据进行排序。

最新更新