我们的应用程序是一个 RCP 应用程序,需要显示数千个项目的表格。出于这个原因,我们SWT.VIRTUAL
在我们的TableViewer
. 除了选择之外,这很好用。
我们遇到以下问题:
- 我们
TableViewer
支持排序和过滤。当我们使用虚拟表格查看器时,更改选择不会保留当前选中的项目,而是保留当前选中的行。这会导致另一个项目被选中。例如:如果用户选择了第 5 行的“A”项并执行排序,则在排序后第 5 行的“项”被选中,而不是“A”项。使用非 virtualTableViewer
,一切正常。
我们尝试进行调试,发现AbstractTableViewer.VirtualManager
类中的缓存似乎与模型是最新的。强制使用缓存AbstractTableViewer.virtualSetSelectionToWidget()
可能是一种可能的方法。
我们已尝试实施https://bugs.eclipse.org/bugs/show_bug.cgi?id=338696中建议的解决方案。然而它没有用。
请提出一些建议或替代解决方法。
感谢您的回答。