【发布时间】:2017-01-19 10:35:57
【问题描述】:
是否有一些板载方法可以将多个子列表绑定到一个主列表?
我已经扩展TreeItem 喜欢:
import java.util.List;
import javafx.scene.control.TreeItem;
import javafx.collections.ObservableList;
// Further imports
public class MyTreeItem extends TreeItem<MyItem> {
// ...
public ObservableList<MyHistoryItem> getOwnHistory() {
// some code generating data
}
public ObservableList<MyHistoryItem> getCombinedHistory(){
ObservableList<MLDFXHistoryItem> fxCombHistory = FXCollections.observableArrayList();
fxCombHistory.addAll(this.getOwnHistory());
for (TreeItem<MyItem> child: this.getChildren())
{
fxCombHistory.addAll(((MyItem) child).getCombinedHistory());
}
return fxCombHistory;
}
}
函数getCombinedHistory() 将来自根项的数据与其所有子项结合起来。基本上它有效。无论如何,子列表中的更改不会自动转发。
我是否必须编写适当的侦听器来自行更新fxCombHistory,或者有更简单的方法来绑定此列表?
【问题讨论】:
-
你试过
Bindings.bindContentBidirectional(ObservableList<E> list1, ObservableList<E> list2)吗?
标签: java list javafx data-binding