Есть ли какой-нибудь встроенный способ привязать несколько подписок к одному главному списку?Java Связывание подписок в основном списке
я продлил 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 list1, ObservableList List2)'? –
MBec