Flex[Bindable]标记的作用是什么?

flseospp  于 2022-10-08  发布在  Apache
关注(0)|答案(5)|浏览(160)

意思是。。。我见过将组件绑定到[Bindable]dataProvider的情况。当我更新dataProvider中的数据时,该组件不会立即反映更改。我需要做些什么来刷新数据吗?什么事件会导致组件刷新其dataProvider数据?

kknvjkwl

kknvjkwl1#

这可能有些夸大其词,但如果你真的对添加[Bindable]标签后幕后发生的事情感兴趣,我强烈建议你去360|Flex!San Jose查看Michael Labriola的Diving in the Data Binding WatersSession。这是迄今为止关于这一主题的最深入的陈述。

要查看它,你需要下载Adobe Media Player(在Adobe Air上运行)。如果您在Adobe Media Player中订阅360|Flex会话时遇到问题,请遵循Ted Patrick的已删除链接他的博客帖子中的建议。

他的演讲也在Slideshare上播出,但远远谈不上信息量和娱乐性。

hl0ma9xz

hl0ma9xz2#

开发人员指南的第7章就是针对这一点的。我建议你读一读。

摘录:
尽管原始数据对象(如字符串数组或对象数组)在用作dataProvider属性的值时 Package 在集合中,但显式使用集合是一种更好的做法。与直接将原始对象用作数据提供程序时相比,使用集合显式确保了数据同步,并提供了更简单、更复杂的数据访问和操作工具。集合还可以为访问和管理不同类型的数据提供一致的接口。

另请参阅有关数据绑定和数组的内容

yvgpqqbh

yvgpqqbh3#

这将取决于你对数据做了什么。您是否应用了筛选器,如果应用了筛选器,则需要刷新数据。您是否进行了排序,如果是,您将需要刷新数据。您的dataProvider是否为数组,如果是,则不执行绑定,请使用ArrayCollection。

给我们一个没有更新的例子,我们应该能够提供具体的帮助。

ajsxfq5m

ajsxfq5m4#

如果您喜欢使用命令行编译器,可以使用compile.keep-generated-actionscript标志来查看将[Bindable]添加到属性的效果。创建一个名为test的简单ActionScript类,并向其添加一个可绑定的字符串属性,然后按如下方式编译它:

mxmlc -compiler.keep-generated-actionscript test.as

这将创建一个名为“Generated”的文件夹,其中包含所有额外的操作脚本,在本例中,它将是一个名为“_test-binding.Generated.as”的文件(可能)。

您应该能够从中看到,添加可绑定标记只是创建了一个 Package 器,该 Package 器实现IEventDispatcher并在调用setter时分派一个事件。您的组件将监听的正是这个 Package 器。

如果您的组件没有立即在其显示中反映更改,这可能意味着您必须查看该组件的重绘代码。树控件在这类问题上是臭名昭著的,主要是因为更新可能会很昂贵。

jtjikinw

jtjikinw5#

如果属性是数据绑定表达式的源,则当源属性更改时,Flex会自动将源属性的值复制到任何目标属性。若要向Flex发出信号以执行复制,必须使用[Bindable]元数据标记向Flex注册该属性,并且源属性必须调度事件。

相关问题