是否更喜欢对GUI元素进行排序而不是对数据进行排序并让GUI显示已排序的数据?

pro*_*tor 2 delphi sorting user-interface virtualtreeview

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

操纵GUI元素而不是它们显示的数据是否是"好习惯",为什么?

Dav*_*nan 7

通常,您希望保持基础数据与该数据的可视化表示之间的分离.考虑到这一点,人们通常更喜欢在GUI级别实现排序,而不是在数据级别降低.

例如,这允许您显示相同数据的多个视图,这些视图的排序方式不同.这是通过保持模型和视图之间的明确分离而获得的好处.

在您的情况下,您对这两个选项的实现已经显示出性能差异.我将从中获得的是,在GUI级别实现时可以优化排序.这就是我如何处理这个问题.

  • 我的意思是在`TGroupedMemoryLeakList`和`TVirtualStringTree`之间加入一层.该层将包含与特定视图关联的`TGroupedMemoryLeakList`元素的排序.排序可能只是一个"整数数组",其中每个"整数"都是"TGroupedMemoryLeakList"的索引.当用户想要排序时,它就是中间层,即排序的索引数组. (2认同)