IList、ICollectionView与IViewCursor的一点理解

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

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


IList

按顺序组织的项目的集合。提供基于索引的访问和处理方法。
IList 可以是从远程位置检索到的数据的视图。在对可能位于远程位置的集合进行写入时,必须处理数据尚不可用的情况,ItemPendingError 会指示这一情况。

ICollectionView 可以替代 IList。

get length():int

function addItem(item:Object):void

function addItemAt(item:Object, index:int):void

function getItemAt(index:int, prefetch:int = 0):Object

function getItemIndex(item:Object):int;

function itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void

function removeAll():void

function removeItemAt(index:int):Object;

function setItemAt(item:Object, index:int):Object;

function toArray():Array;


ICollectionView
ICollectionView 是数据集合的视图。可以修改该视图以显示根据各种条件排序的数据,或显示在不修改基本数据的情况下经过滤镜筛选后的数据。通过 IViewCursor,可以访问集合中的项目。可使用 IViewCursor 接口 insert() 和 remove() 方法修改该集合。
ICollectionView 可以是已从远程位置检索到的数据的视图。针对可能是远程数据的数据实现此接口时,必须处理数据尚不可用的情况,ItemPendingError 会指示这一情况。
IList 接口可替代 ICollectionView 接口。

function get length():int;

function get filterFunction():Function;

function set filterFunction(value:Function):void;

function get sort():ISort;

function set sort(value:ISort):void;

function createCursor():IViewCursor;

function contains(item:Object):Boolean;

function disableAutoUpdate():void;

function enableAutoUpdate():void;

function itemUpdated(item:Object, property:Object = null,oldValue:Object = null, newValue:Object = null):void;

function refresh():Boolean;


IViewCursor

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

定义双向枚举集合视图的接口。此光标提供查找、搜索和标记为书签的功能,还提供修改方法插入和删除。首次从视图检索光标(通常使用 ICollectionViewcreateCursor() 方法)时,current 属性的值应是该视图中的第一个项目,除非视图为空。

function get afterLast():Boolean;

function get beforeFirst():Boolean;

function get bookmark():CursorBookmark;

function get current():Object;

function get view():ICollectionView;

function findAny(values:Object):Boolean;

function findFirst(values:Object):Boolean;

function findLast(values:Object):Boolean;

function insert(item:Object):void;

function moveNext():Boolean;

function movePrevious():Boolean;

function remove():Object;

function seek(bookmark:CursorBookmark, offset:int = 0, prefetch:int = 0):void;


提到这三个接口,就不得不提到这两个类:ArrayCollection和XMLListCollection

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值