【发布时间】:2013-11-12 18:09:54
【问题描述】:
Oracle 文档对此不是很清楚,google 和 bing 也不是。
我可以(如在 WPF 中)绑定到 FXML 中的模型跳过 Java 中的绑定代码吗?
我确实在某处的博客上看到过类似 ${object.field} 的语法,但我不能确定。
后期编辑:我从事 XAML 开发(WPF、Silverlight、Windows Phone)已有好几年了,而且我已经习惯于在标记中表达数据绑定。此外,我在a 2011 article on FXExperience 中读到过
我可以稍微扭转局面,将绑定移到 FXML 文档中。除了布局之外,这将允许工具处理数据绑定。请注意,由于 FXML 不支持双向绑定,因此以下代码目前无法使用,但我们正在努力解决此问题。
实际上是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import fxmlapp.Model ?>
<VBox fx:id="root" xmlns:fx="http://javafx.com/fxml" fx:controller="fxmlapp.Sample">
<fx:define>
<Model fx:id="model" />
</fx:define>
<children>
<TextField fx:id="firstNameField" text="${model.person.firstName}" />
<Label fx:id="messageLabel" text="${model.person.firstName}" />
</children>
</VBox>
因为它是在 2011 年的一篇文章中,所以事情本来可以同时实施,但在这个方向上没有找到任何证据。因此,经过仔细搜索,我决定在这里问。
【问题讨论】:
-
你能简要地定义你想要达到的目标吗?
-
我希望“后期编辑”现在可以澄清一点。
-
我还是不明白。 FXML 数据绑定在许多情况下与 XAML 非常相似(但没有那么强大,例如,没有“复杂”表达式绑定),您发布的示例就是这样工作的。你想知道什么?您想看一个在 FXML 中显示数据绑定的简单示例吗?
-
不,FXML 尚不支持双向绑定。但是,您可以在代码中绑定双向。
-
在代码中我知道该怎么做并且它有效。好吧,谢谢,这是一个有效的答案。你为什么不把它写成答案让我接受呢?
标签: data-binding javafx-2 markup fxml