【发布时间】:2016-03-30 23:54:32
【问题描述】:
我们的应用程序是一个 RCP 应用程序,需要显示包含数千个项目的表格。因此,我们在TableViewer 中使用SWT.VIRTUAL。除了选择之外,这很好用。
我们遇到以下问题:
- 我们的
TableViewer支持排序和过滤。当我们使用虚拟表格查看器时,更改选择不会保留当前选中的项目,而是保留当前选中的行。这会导致另一个项目被选中。 例如:如果用户选择了第 5 行的项目“A”并执行排序,则在排序后第 5 行的项目将被选中,而不是项目“A”。 使用非虚拟TableViewer,一切正常。
我们尝试进行调试,发现来自AbstractTableViewer.VirtualManager 类的缓存似乎与模型是最新的。
强制在AbstractTableViewer.virtualSetSelectionToWidget() 中使用缓存可能是一种可能的方法。
我们已尝试实施https://bugs.eclipse.org/bugs/show_bug.cgi?id=338696 中建议的解决方案。但是没有用。
请提出一些建议或替代解决方法。
感谢您的回答。
【问题讨论】:
-
添加与您的需求相关的代码部分将帮助人们回复恰当的答案!
标签: eclipse-plugin swt eclipse-rcp jface tableviewer