Javafx绑定List 通过引用到ListView

问题描述 投票:0回答:1

我正在制作一个Javafx应用程序,我有一个List<String>,我不断更新,我希望它与我在屏幕上的ListView同步,而不需要每次都手动更新它。就像通过引用绑定ListView一样。这可能吗?如果是这样我该怎么办?谢谢。

java list listview javafx reference
1个回答
0
投票

根据您提出的问题和评论,您正在尝试执行以下操作:

ObservableList<E> list = ...;
ListView<E> view = ...;
view.itemsProperty().bind(list);

这不起作用,因为bind期望ObservableValueObservableList不扩展该接口。您不需要绑定items属性。无论ObservableList属于items属性,ListView都会观察到更改(即添加,删除,排列和更新1)。这意味着你应该做的事情如下:

ObservableList<E> list = ...;
ListView<E> view = ...;
view.setItems(list);

然后对list的修改将反映在ListView中。

如果你需要绑定items属性,那么你的ObservableList将需要保存在ObservableValue<ObservableList<E>>ObservableListValue<E>的实现中。

我建议阅读更多有关JavaFX基础知识的内容;例如tutorialListView上的documentation


1.当元素的属性失效时,将触发更新更改事件。为了使ObservableList能够观察其元素的属性,从而能够触发更新事件,必须使用FXCollections.observableArrayList(Callback)创建它。

© www.soinside.com 2019 - 2024. All rights reserved.