我正在使用 JavaFX,并且正在调查数据绑定(bind)。
我发现我可以在我的 FXML 中定义单向绑定(bind),如下所示:<TextField fx:id="usernameTextField" text="${controller.userName}" GridPane.columnIndex="1" />
这意味着,usernameTextField 的文本正在“观察”controller.userName 属性。
但这会创建一种单向绑定(bind)。如果 controller.userName 属性发生更改,我会在文本字段中看到更新的文本,该部分有效。但是我不能再在文本字段中插入文本,因为我已经进行了单向绑定(bind)。
我能找到的所有关于这个的帖子都已经有四年多了,但我不知道是否已经更新了 JavaFX 以支持更精细的绑定(bind)。
最佳答案
这样做的方法是:
<TextField fx:id="usernameTextField" text="#{controller.userName}"/>
但此功能尚未启用(上次在 OpenJFX 13 上检查),使用它将导致
FXMLLoader
扔一个 UnsupportedOperationException("This feature is not currently enabled.")
.
关于JavaFX:FXML 中的双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59281876/