首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex/AS3:从ListCollectionView中删除项目

Flex/AS3:从ListCollectionView中删除项目
EN

Stack Overflow用户
提问于 2012-08-01 08:46:45
回答 2查看 977关注 0票数 1

我使用了一个临时数组来填充ListCollectionView。稍后,我有了一个屏幕,其中显示了一个使用ListCollectionView作为dataProvider的DataGrid。用户可以通过选择行,然后单击删除按钮来删除DataGrid中的行。

如何访问ListCollectionView使用的原始源,并从那里删除项目?

这样做之后,该项目是否也会自动从ListCollectionView中删除,并且不再显示在DataGrid中(或者是否需要刷新某些内容)?

更新1

下面这句话听起来像是在正确的轨道上吗?(我想从源代码中删除它(这是“.list”吗?)而不仅仅是来自ListCollectionView。)

代码语言:javascript
复制
[Bindable] private var _myLCV:ListCollectionView=new ListCollectionView(new ArrayList());
...
var obj:Object = _myLCV.getItemAt(myGrid.grid.selectedIndex); // get item user selected
_myLCV.list.removeItemAt( _myLCV.list.getItemIndex(obj) );   // delete item from source

更新2

我不知道为什么(我使用的是SDK 4.5.1A),但我似乎需要在更新1的上述代码中添加以下代码行,以便DataGrid可靠地更新并显示删除的行:

代码语言:javascript
复制
_myLCV.refresh();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-01 08:57:22

我的冲动是建议使用removeItemAt从ListCollectionView中删除该项目。

如果您真的想访问源代码而不是处理集合,那么这取决于您使用的ListCollectionView的类型。

如果您使用的是ArrayCollection,则可以使用source property访问源代码。如果您使用的是XMLListCollection,则可以使用source property访问源代码。

ListCollectionView中没有固有的source属性,但List property可能就足够了。

在任何情况下,从ListCollectionView或ListCollectionView的源中删除项都会自动更新DataGrid。如果不是,您可以在集合上调用refresh() method

票数 2
EN

Stack Overflow用户

发布于 2012-08-01 09:44:43

Spark DataGrid与其他基于列表的控件(如list甚至DataGroup )一样,将从其dataProvider中观察更改事件。改变事件可以包括项移除、更新、排序和插入。这样,只需更新控件的基础数据,就可以方便地更新控件。

也就是说,如果您的意图是“刷新”datagrid以与LIstCollectionView保持同步,那么通过修改数组然后进行刷新是不必要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11751096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档