单击 Nattable 中的 header 列时如何禁用整个列选择?

How to disable entire Column selection when clicking on column header in Nattable?

我有一个带有列 header 层的简单 nattable。但是,当我单击 header 列时,整个列都会被选中。我必须有一个仅用于 bodydata 层的选择层。

我还想禁用第 header 列上的所有 selection/click 事件。

默认选择绑定是通过 DefaultSelectionBindings 配置进行配置的。这会在打开自动配置的情况下创建 SelectionLayer 时自动注册。

您可以关闭自动配置并注册自定义配置。最简单的方法是创建 DefaultSelectionBindings 的子类并覆盖 configureColumnHeaderMouseClickBindings() 以不执行任何操作。然后创建 DefaultSelectionLayerConfiguration 的子类,您可以在其中覆盖 addSelectionUIBindings() 以注册您的绑定配置。然后需要将此自定义选择层配置添加到 SelectionLayer。

另一种方法是在 NatTable#configure() 之后尝试注销应用的 ui 绑定。但是对于这种方法,您需要一些更深入的知识才能知道您需要注销什么。