【问题标题】:flex Dictionary dataProvider?弹性字典数据提供者?
【发布时间】:2011-03-04 16:33:18
【问题描述】:

我有一个字典,我想将它绑定为 mx:ComboBox 的 dataProvider。例如,当我这样做时:

       mydict[somenewkey]= somenewval;

我希望组合框更新其内容。

问题在于 Dictionary 似乎不是可绑定的。如果我使用的是数组,我会使用 ArrayCollection。但似乎没有对应的 DictionaryCollection 或 HashCollection。怎么办?

【问题讨论】:

  • 您希望 ComboBox 以什么格式显示您的 Dictionary 中的数据?我知道您想要键值对,但这不是组合框所期望的。它需要类似列表的东西,或者是 ICollectionView,或者可以转换为类似 Array 或 XMLList 的东西。也许一个更好的问题是,为什么需要键值对?您是否碰巧在其他地方需要它,也许您希望通过将所有数据保存在一个地方来进行优化?或者由于某种原因,ComboBox 以某种方式引用这些对是否至关重要?

标签: apache-flex flash actionscript


【解决方案1】:

字典不是基于列表的类的 dataProvider 的合适对象。

我怀疑您的显示问题与数据绑定无关,而是其他问题,例如字典没有长度属性。

我怀疑 ComboBox 会将您的字典视为单个对象,而不是多个对象的集合。

【讨论】:

  • 什么是合适的对象?
  • 我强烈建议使用集合类,尽管您也可以使用数组、XMLList 或直接 XML。
  • 问题是这些集合没有 key=>value 语义。
  • 非常正确。你为什么需要那个?我想,理论上,您可以扩展 ComboBox / List 类以接受 Dictionary 作为 dataProvider;但我希望你有一个强大的用户案例。
【解决方案2】:
【解决方案3】:

您要查找的不只是 ArrayCollection 的 setItemAt 和 getItemIndex 方法的组合吗?

_myAC.setItemAt( somenewval, _myAC.getItemIndex( somenewkey ) );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2018-08-25
    • 2020-08-07
    相关资源
    最近更新 更多