我的问题很简单,有没有办法在一个选择框的项目和一个arraylist之间进行双向绑定(可以在另一个类中添加和删除)
我的SettingsService
包含一个包含User
个对象的简单ArrayList。可以从我的应用程序中的其他类和位置添加新项目。
如果我将用户添加到此列表中,新项目如何自动显示在选择框中?
示例:
视图模型
public class ViewModel {
private SettingsService settings = new SettingsService();
public final ObjectProperty<ObservableList<User>> userChoiceBoxItems = new SimpleObjectProperty<>();
public ViewModel() {
userChoiceBoxItems.setValue(FXCollections.observableArrayList(settings.getUsers()))
}
}
查看
public class View {
private ViewModel viewModel = new ViewModel();
@FXML
ChoiceBox<User> userChoiceBox;
@FXML
public void initialize() {
userChoiceBox.itemsProperty().bindBidirectional(viewModel.userChoiceBoxItems);
}
感谢您的帮助
答案 0 :(得分:0)
创建一个新的ObservableList
ObservableList<User> tempList = FXCollections.observableArrayList()
并将所有项目添加到列表中
templist.addAll(userChoiceBoxItems)
然后双向绑定