JavaFX双向绑定 - FXML

时间:2018-06-11 14:57:41

标签: java javafx binding fxml

据我所知,可以绑定一个属性并从控制器中读取它的值,它可以像标签那样只读字段,但它不适用于文本框。

FXML:

<TextField text="${controller.userName}" />

控制器:

private final StringProperty userName = new SimpleStringProperty();
public StringProperty userNameProperty() {
    return userName;
}

使用此策略我无法从用户界面设置文本框值。

从FXML文档中删除绑定并在控制器端添加绑定可以正常工作:

FXML:

<TextField fx:id="userNameTextField" />

控制器:

private final StringProperty userName = new SimpleStringProperty();

@FXML
private TextField userNameTextField;

@FXML
void initialize() {
    userNameTextField.textProperty().bindBidirectional(userName);
}

但我不喜欢这个解决方案,因为我想要解耦控制器和FXML。

我的问题是:是否可以通过在控制器端设置绑定来实现双向绑定?

将我的模型与表示层连接的最佳设计模式是什么?

0 个答案:

没有答案