如何在 natTable 中对配置标签进行排序? (有没有一种简单的方法可以从 nattable 中获取相对坐标?)
Posted
技术标签:
【中文标题】如何在 natTable 中对配置标签进行排序? (有没有一种简单的方法可以从 nattable 中获取相对坐标?)【英文标题】:How to sort config labels in natTable as well? (Is there a simple way to get relative coordinates from a nattable?) 【发布时间】:2021-11-26 10:26:28 【问题描述】:我使用 natTable 的配置标签作为标识符来为表格中的每个单元格着色。
config 标签以绝对坐标分配给表格。
但是,排序的时候,对应的标签是绝对坐标的,所以在对值进行排序的时候,我希望标签也能排序。这种情况我该怎么办?
我可以将配置标签更改为相对坐标吗?
如果可能的话,我想知道怎么做。
【问题讨论】:
【参考方案1】:您不应依赖列号和行号,而应依赖一些真实信息。您正在谈论的功能称为“条件样式”,单元格坐标不是一个很好的条件。尤其是因为你描述的行为。
https://www.vogella.com/tutorials/NatTable/article.html#architecture_labels
您可以在DataLayer
上添加标签累加器,这主要是索引 == 位置的唯一层。您还可以在累加器中实现索引位置转换。但取决于您实现排序的方式,底层列表结构可能会发生变化,例如使用 GlazedLists SortedList 时。这样就无法可靠地识别单元坐标。
【讨论】:
感谢回答那么,有没有其他方法可以重复删除旧标签累加器并在每次排序时注册一个新标签累加器的过程? 这没有意义。因此没有。您需要找到一种方法来通过不基于单元格坐标的条件添加标签。如果您关注单元格内容而不是单元格位置,则它适用于任何转换。 感谢您的回答!!我找到了方法!让 natTable 中的每个单元格都有一个对象,我通过检查对象的值添加了一个配置标签。当我这样做时,排序没有问题。 这正是我试图解释的!顺便说一句,每个单元格都应该有一个对象,或者您要在单元格中显示什么? 是的!如果单元格中的数据值无效,我尝试将背景部分和字体颜色显示为红色。现在它会自动好的谢谢!以上是关于如何在 natTable 中对配置标签进行排序? (有没有一种简单的方法可以从 nattable 中获取相对坐标?)的主要内容,如果未能解决你的问题,请参考以下文章
NatTable 中的值如何与 GlazedLists 进行比较?