JavaFX:FXML 中的双向绑定(bind)

标签 java javafx data-binding fxml two-way-binding

我正在使用 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/

相关文章:

java - 更改/更新另一个类中的 FXML 组件

wpf - DataTrigger 与数据绑定(bind)与转换器性能方面的比较

java - Log4j2 网络查询

java - AWS Lambda 不从队列中删除消息

java - ChangeListener 在 Javafx 中未触发

java - 使用 BorderPane 定位控件时出现问题

c# - Windows 窗体数据绑定(bind)

grails - 将命令对象与 ValueConverter 绑定(bind)

java - Dagger Hilt 测试错误 - 错误 : cannot find symbol @ScopeMetadata, @QualifierMetadata

java - 如何查找数据是英文还是中文