我想知道是否有办法将ObservableSet
绑定到ListView
或ObservableList
双向转换为ObservableSet
?
答案 0 :(得分:3)
一般情况下,完全不可能这样做,因为列表和集合具有不同的功能(在排序列表时集合是无序的;列表可以包含重复但是集合不能)。
您可以确保const
显示ListView
中的元素,其代码类似于以下内容:
ObservableSet
如果可以独立于集合操作ObservableSet<String> set = FXCollections.observableSet();
ListView<String> listView = new ListView<>();
set.addListener((Change<? extends String> c) -> {
if (c.wasAdded()) {
listView.getItems().add(c.getElementAdded());
}
if (c.wasRemoved()) {
listView.getItems().remove(c.getElementRemoved());
}
});
,那么您可以使用ListView
注册(某种程度上)类似的侦听器,并相应地更新集合。