关于ArrayCollction中单个项目的更新

通常,我认为只要绑定了一个ArrayCollection,它内部的值更新时,被绑定组件中的数据都会自动更新。但是下面的测试说明并非如此。

如果更新了ArrayCollection中某个项目的值(并不是通过AddItem等方法更新这个项目,而是直接更新这个项目中的某个值),那么虽然ArrayCollection中的值更新了,但是被绑定的组件并不会接收到更新通知。这时,就要用itemUpdated方法来发送更新事件。

看下面的例子:
继续阅读关于ArrayCollction中单个项目的更新

我对IList、ICollectionView与IViewCursor的一点理解

汉英对照:
接口 interface
集合 collection

看了Flex 2.01HelpUsing Data Providers and Collections章节的一些感受,可能有不对的。

IList、ICollectionView与IViewCursor,这是Flex提供的三个接口,它们都位于mx.collections包下,作用与集合密切相关。

IList

这个接口提供的方法和属性用来操作集合。它的方法都是基于索引的,例如:addItem()、addItemAt()等等,它不能提供排序、筛选等功能。IList的方法会直接影响原始数据的值。

ICollectionView

这个接口提供了对数据进行排序、筛选、功能。同时它的createCursor()方法还可以创建一个IViewCursor的实例。需要注意的是,这个接口的操作不会直接影响原始数据的值。排序不会影响原始数据的顺序,而筛选也不会删除原始数据的内容。

IViewCursor

这个接口的功能更强大,它提供了完整的指针功能,可以对数据进行查找find()、定位seek()操作,可以利用书签保存当前的操作位置。同时,它也可以使用insert()、remove()等方法来修改原始数据。

提到这三个接口,就不得不提到这两个类:ArrayCollectionXMLListCollection

这两个类都是用于集合的,它们都实现了IList和ICollectionView接口,因此可以直接使用这两个接口的所有方法。不过,如果要使用书签等功能,就需要用createCursor()方法来创建一个IViewCursor的实例来实现。