包 | mx.collections |
接口 | public interface ICollectionView extends IEventDispatcher |
实现器 | ListCollectionView |
ICollectionView
是数据集合的视图。可以修改该视图以显示根据各种条件排序的数据,或显示在不修改基本数据的情况下经过滤镜筛选后的数据。通过 IViewCursor,可以访问集合中的项目。可使用 IViewCursor 接口 insert()
和 remove()
方法修改该集合。
ICollectionView
可以是已从远程位置检索到的数据的视图。针对可能是远程数据的数据实现此接口时,必须处理数据尚不可用的情况,ItemPendingError
会指示这一情况。
IList
接口可替代 ICollectionView
接口。
另请参见
属性 | 定义方 | ||
---|---|---|---|
filterFunction : Function 视图用来消除不符合函数条件的项目的函数。 | ICollectionView | ||
length : int [只读 (read-only)] 此视图中的项目数。 | ICollectionView | ||
sort : Sort 将应用于 ICollectionView 的排序。 | ICollectionView |
方法 | 定义方 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | IEventDispatcher | ||
返回指示视图是否包含指定对象的信息。 | ICollectionView | ||
创建使用此视图的新 IViewCursor。 | ICollectionView | ||
防止视图调度对集合本身和集合中的项目的更改。 | ICollectionView | ||
将事件调度到事件流中。 | IEventDispatcher | ||
启用自动更新。 | ICollectionView | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | IEventDispatcher | ||
itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void 通知视图,某个项目已更新。 | ICollectionView | ||
将排序和滤镜应用到视图。 | ICollectionView | ||
从 EventDispatcher 对象中删除侦听器。 | IEventDispatcher | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | IEventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
以某种方式更新 ICollectionView 后调度。 | ICollectionView |
filterFunction | 属性 |
filterFunction:Function
[读写] 视图用来消除不符合函数条件的项目的函数。FilterFunction 应具有以下签名:
f(item:Object):Boolean如果指定的项目应保留在视图中,则返回值为
true
。
如果滤镜是不支持的滤镜,则在访问此属性时 Flex 会引发错误。必须在设置 filterFunction
属性后调用 refresh()
以更新视图。
注意:ICollectionView 的 Flex 实现将先检索远程位置的所有项目,然后再执行 filter 函数。如果使用分页,请在检索数据之前将该滤镜应用到远程集合。
public function get filterFunction():Function
public function set filterFunction(value:Function):void
另请参见
length | 属性 |
sort | 属性 |
sort:Sort
[读写]
将应用于 ICollectionView 的排序。设置排序不会自动刷新视图,因此必须在设置此属性后调用 refresh()
方法。如果不支持排序,访问此属性时将引发错误。
注意:ICollectionView 的 Flex 实现将先检索远程位置的所有项目,然后再执行排序。如果要对排序后的列表使用分页,请在检索数据之前对远程集合应用排序。
public function get sort():Sort
public function set sort(value:Sort):void
另请参见
contains | () | 方法 |
public function contains(item:Object):Boolean
返回指示视图是否包含指定对象的信息。与 IViewCursor.find xxx
方法不同,此搜索仅在找到完全与参数匹配的项目时才会成功。如果视图中包含已应用到该视图的滤镜,则即使基本集合确实包含该项目,此方法也会返回 false
。
参数
item:Object — 要查找的对象。 |
Boolean — 如果应用滤镜后 ICollectionView 包含该项目,则返回 true,否则返回 false。 |
createCursor | () | 方法 |
disableAutoUpdate | () | 方法 |
public function disableAutoUpdate():void
防止视图调度对集合本身和集合中的项目的更改。如果集合中的位置发生变化,还要防止视图更新项目的位置。调用 enableAutoUpdate
后,将适当排列和调度更改。如果发生更新单个项目之外的其它事件,视图最终可能会重新设置。disableAutoUpdate
方法累积执行;要求视图调度并刷新事件的次数与调用 enableAutoUpdate
的次数相同。注意,disableAutoUpdate
仅影响单个视图;其它视图可能根据各个基础检测编辑。
enableAutoUpdate | () | 方法 |
itemUpdated | () | 方法 |
public function itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void
通知视图,某个项目已更新。如果视图的内容不实现 IPropertyChangeNotifier
,则此方法非常有用。如果对此方法的调用包括 property
参数,则视图可以优化其通知机制。否则,它可能选择仅刷新整个视图。
参数
item:Object — 已在视图中更新的项目。 | |
property:Object (default = null ) — 已更新属性的名称。 | |
oldValue:Object (default = null ) — 该属性的旧值。(如果属性为 null,则它可以是该项目的旧值。) | |
newValue:Object (default = null ) — 该属性的新值。(如果属性为 null,则无需指定它,因为已假定该项目为新值。) |
另请参见
refresh | () | 方法 |
public function refresh():Boolean
将排序和滤镜应用到视图。ICollectionView 不自动检测对排序或滤镜的更改,因此您必须在设置 sort
或 filterFunction
属性后调用 refresh()
方法以更新视图。如果 ICollectionView 实现也实现 IMXMLObject 接口,则应从 initialized()
方法调用 refresh()
方法。
如果刷新成功,则返回 true
;如果排序尚未完成(例如,项目仍待处理),则返回 false
。视图的客户端应等待执行带有 CollectionEventKind.REFRESH
kind
属性的 CollectionEvent 事件以确保完成 refresh()
操作。
Boolean —
如果已经完成 refresh(),则为 true ;如果未完成 refresh(),则为 false 。
|
collectionChange | 事件 |
mx.events.CollectionEvent
mx.events.CollectionEvent.COLLECTION_CHANGE
以某种方式更新 ICollectionView 后调度。
CollectionEvent.COLLECTION_CHANGE 常数可为在集合发生更改时调度的事件定义事件对象的type
属性值。
事件对象的属性具有下列值。并非所有属性对于各种事件都有意义。有关详细信息,请参阅详细的属性说明。
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| false |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
items
|
对象 Array,其中包含有关受事件影响的项目的信息。此字段的内容取决于事件的类型;有关详细信息,请参阅 items 属性
|
kind
| 事件的类型。有效值定义为 CollectionEventKind 类中的常数。 |
location
|
items 属性中指定的项目在目标集合中的位置。
|
oldLocation
|
items 属性中指定的项目原来在目标集合中的位置。
|
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
type
| CollectionEvent.COLLECTION_CHANGE |