gridview - 将 JavaFX 的 SelectionModel 实现到没有它的 View 的正确方法

标签 gridview javafx selectionmodel controlsfx

我正在尝试为 ControlsFX 的 GridView 实现 MultipleSelectionModel。乔纳森·贾尔斯(Jonathan Giles)在研究互联网时提到,它是 a bad idea向每个 GridCell 添加监听器。这让我想知道如何向选择模型通知选择、取消选择等事件。在阅读本文之前,我认为 GridCell 中使用的节点将消耗鼠标/触摸/按键事件并使用 GridCells 的 updateSelected 相应的方法。我的问题是,此更新是否会传播到任何监听器/模型,或者我是否必须手动绑定(bind)它(在某个地方),我目前不知道该怎么做。

此外,选择模型使用只读可观察列表,这提出了另一个问题,即如何将 GridView 的数据(即项目列表)绑定(bind)到选择模型的列表,我认为该列表是模型用于其流程的列表。

我可能可以完全绕过使用选择模型,并在 Cell/Node 级别拦截输入事件,并执行诸如突出显示 Cell 的 updateItem 方法之类的操作,同时使用后备 ObservableList 或 2 来跟踪所有内容,以及相应地刷新,但这不是最好的方法,更不用说是好的方法了。 GridView 的选择模型应该是唯一的出路,这就是我在这里的原因。

最佳答案

您不一定必须使用 MultiSelectionModel 或 JavaFX 带来的任何东西。使用 Set 或 List 来存储您选择的节点就足够了。

这是一个关于 How to select multiple components of Canvas using ctrl key in javafx? 的示例我的回答。我想它可以满足您的需求。如果没有,请具体说明您需要什么。

关于gridview - 将 JavaFX 的 SelectionModel 实现到没有它的 View 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736996/

相关文章:

android - 我可以在 Listview 项目中添加 GridView 吗?

android - Pinterest 类似于 Android 中的 Grid

javascript - jQuery .prev - 我可以获取上一个之前的实例吗?

带有图标和文件名的 JavaFX 文件 ListView

java - 从 JavaFX 2.0 中的 TableView 读取多项选择

c# - 回发后将数据保留在 GridView 中

javafx - 如何从矩形中找到图像图案?

java - Stage 在 javafx 中显示为 null

java - JTable 中的选择模式?

java - JTable.clearSelection() 与 Jtable.getSelectionModel.clearSelection() - 何时使用什么?