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