JavaFX双向绑定选择框

时间:2015-03-12 12:26:22

标签: java javafx javafx-8 bidirectional

我的问题很简单,有没有办法在一个选择框的项目和一个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);
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

创建一个新的ObservableList ObservableList<User> tempList = FXCollections.observableArrayList() 并将所有项目添加到列表中 templist.addAll(userChoiceBoxItems)  然后双向绑定