【问题标题】:Why doesn't my listCollectionView show new items added to the underlying list (in flex)?为什么我的 listCollectionView 不显示添加到基础列表(在 flex 中)的新项目?
【发布时间】:2011-06-20 04:20:24
【问题描述】:

我有一个用 ListCollectionView 包装的(空)ArrayCollection。 然后我将一系列项目添加到 ArrayCollection,但这些项目并没有显示在视图中。

public var transactions : ArrayCollection = new ArrayCollection();
public var filteredTransactions : ListCollectionView = new ListCollectionView(transactions);

transactions 包含 150 项,filteredTransactions 不包含。我原本以为是我应用的过滤器,但即使我删除了过滤器,过滤列表中仍然没有任何项目。

我错过了一步吗? 我是否需要将项目添加到视图以及基础集合中(但这似乎违背了使用视图的目的......)?

【问题讨论】:

  • 您明白 ArrayCollection 扩展了 ListCollectionView,对吧?为什么需要在 ListCollectionView 中包装 ArrayCollection?
  • 因为我有一个用于所有事务的集合(我需要单独维护),然后我需要一个视图来显示有多少符合特定条件。
  • 那么 ListCollectionView 提供了哪些 ArrayCollection 尚未提供的功能?你想克隆 ArrayCollection 吗?
  • 数组集合仅用于存储交易列表(将其设为集合而不是直接数组纯粹是为了方便)。该视图将提供同一集合的另一个(简化)视图。

标签: apache-flex listcollectionview


【解决方案1】:

如果您不使用 addAll、addItem 或 addItemAt 将项目放入 ArrayCollection,请先尝试将其作为解决方案。将项目直接添加到 ArrayCollection 包装的 Array 不会调度 CollectionEvents。

另外,在将 ListCollectionView 的 list 属性设置为 ArrayCollection 后,尝试使用 ListCollectionView 的 refresh() 方法。

如果这些解决方案都不起作用,请发布附加代码。

【讨论】:

  • 谢谢您 - 我在代码库中的其他地方找到了引用原始列表并替换它的地方 (grrr)...现在替换为 addAll() 完美工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2022-07-14
  • 2016-10-20
  • 1970-01-01
  • 2019-01-28
相关资源
最近更新 更多