Eclipse plugin 虚拟TableViewer排序会导致选择问题

Eclipse plugin 虚拟TableViewer排序会导致选择问题,eclipse-plugin,swt,eclipse-rcp,jface,tableviewer,Eclipse Plugin,Swt,Eclipse Rcp,Jface,Tableviewer,我们的应用程序是一个RCP应用程序,需要显示数千项的表格。因此,我们在TableViewer中使用了SWT.VIRTUAL。除了选择之外,这很有效 我们遇到以下问题: 我们的TableViewer支持排序和筛选。使用虚拟tableviewer时,更改选择不会保留当前选定的项目,而是保留当前选定的行。这将导致选择另一个项目。 e、 g:如果用户选择了第5行中的项目“A”并进行了排序,则排序后,将选择第5行中的项目,而不是项目“A”。 使用非虚拟的表格查看器,一切正常 我们尝试进行调试,发现Ab

我们的应用程序是一个RCP应用程序,需要显示数千项的表格。因此,我们在
TableViewer
中使用了
SWT.VIRTUAL
。除了选择之外,这很有效

我们遇到以下问题:

  • 我们的
    TableViewer
    支持排序和筛选。使用虚拟tableviewer时,更改选择不会保留当前选定的项目,而是保留当前选定的行。这将导致选择另一个项目。 e、 g:如果用户选择了第5行中的项目“A”并进行了排序,则排序后,将选择第5行中的项目,而不是项目“A”。 使用非虚拟的
    表格查看器
    ,一切正常
我们尝试进行调试,发现
AbstractTableViewer.VirtualManager
类的缓存似乎与模型最新。 强制在
AbstractTableViewer.VirtualSetSelectToWidget()中使用缓存是一种可能的方法

我们已尝试实施中建议的解决方案。然而,它没有起作用

请提出一些建议或其他解决方法


感谢您的回答。

作为处理大型表的解决方案,我建议您看看Nattable项目。它支持您所需的一切(排序、筛选、树结构元素、延迟加载等)。我们在项目中成功地使用了它,在项目中需要将数十万个元素显示为一个包含160列的树。它还具有一些非常酷的造型功能,可以使您的桌子更加人性化和互动。希望这有助于

添加代码中与您的需求相关的部分将有助于人们用恰当的答案回复!