绑定JavaFx中的observableList

时间:2014-07-16 13:36:14

标签: java binding javafx tableview

我有一些数据源的实体。它有对象Pojo列表。它可以通过ds.getRows()来获取。 我正试图在这个列表上绑定TableView非常困难。

tblHlp.itemsProperty().bindBidirectional(new SimpleListProperty<>(FXCollections.observableArrayList(ds.getRows())));

当我更改我创建FXCollections.observableArrayList(ds.getRows())的ObservableList时,tableView也被更改了。但是当我在ds(ds.getRows)中更改List时,我希望得到相同的效果。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为你不能那样做。

您可以做的是在您创建的ObservableList上添加ListChangeListener,然后手动管理要在其他列表中添加/删除的项目。例如:

ListChangeListener<Object>() {

    @Override
    public void onChanged(javafx.collections.ListChangeListener.Change<? extends Object> change) {
        while (change.next()) {
           //If items are removed
           for (Objectremitem : change.getRemoved()) {
               unfixColumn(remitem);
           }
           //If items are added
           for (Objectadditem : change.getAddedSubList()) {
               fixColumn(additem);
           }
        }
        updateHighlightSelection();
    }
};

别忘了在这里看看Javadoc:http://download.java.net/jdk8/jfxdocs/javafx/collections/ObservableList.html

如何在这里使用JavaFX集合:http://docs.oracle.com/javafx/2/collections/jfxpub-collections.htm