JavaFX:基于其他TableView禁用TableView中的多行

我正在JavaFx中创建一个应用程序.现在,我有两个彼此相邻的表视图:

------------------------------------------------------------------------------
| TableView 1                        |  TableView 2                          |  
|                                    |                                       |
|                                    |  Entry 1                              |
|                                    |  Entry 2                              |
|                                    |  Entry 3                              |
|                                    |  Entry ...                            |
|                                    |  Entry N                              |
------------------------------------------------------------------------------

我想将项目从TableView 2复制到TableView 1,但是同时,需要禁用从TableView 2复制的条目(使用setDisable或类似的功能禁用该行).我确实知道如何将项目从一个tableview复制到另一个.问题是当将一个或多个条目复制到TableView 1时,我不知道如何禁用多行.
我用RowFactory尝试了这个,就像这样:

productsInTransaction.setRowFactory(tv -> {
      TableRow<Product> row = new TableRow<>();
      row.disableProperty().bind(???);
      return row;
});

任何帮助深表感谢!

最佳答案
我不确定您想要的逻辑,但是如果您的行工厂连接到表1,并且当表2中存在该项目时您要禁用该行,请执行以下操作:

row.disableProperty().bind(Bindings.createBooleanBinding(() -> 
    table2.getItems().contains(row.getItem()), table2.getItems(), row.itemProperty()));

转载注明原文:JavaFX:基于其他TableView禁用TableView中的多行 - 代码日志