有没有办法在 SWT Table 排序后删除排序?

Is there a way to remove the sort after an SWT Table is sorted?

我有一个 TableTableViewer 被设置为 ViewerComparator:

this.viewer.setComparator( this.comparator );

现在我正在查看我的 table。我单击列 header。 table 对该行进行排序。我再次单击该列 header,它按另一个方向排序。我单击不同的列 header,排序切换到新列。这很好用。

我的问题是是否有办法取消排序。这意味着去掉我单击的 header 列顶部的排序箭头,已排序列元素的灰色背景将消失,数据将恢复为原始顺序。我愿意在某处添加某种按钮来启动此命令。

这可能吗?

Table的排序指标和TableViewer使用的比较器实际上是独立的。

要删除排序指示符,请调用 table.setSortDirection( SWT.NONE )。要删除比较器,请调用 viewer.setComparator( null ).

您可以让用户在选择 header 列时在 UPDOWNNONE 之间切换,或者提供一个额外的 UI 元素来重置排序。