0

Flex 如何在 mx:List 中选择或取消选择项目(多选)时更改 dataProvider 中的项目

我只想让我的数据动态地反映我在列表中选择的项目。基于对列表进行一些分类,例如,选择列表时首先在列表中选择选定的项目,并在取消选项时返回原始位置。

4

2 回答 2

0

您可以将IViewCursor用于get/add/remove列表中的项目。

下面是一个如何创建光标的代码示例,基于此,您只需要应用您需要的逻辑。

var col:ICollectionView =  ICollectionView(list.dataProvider);
var myCursor:IViewCursor = col.createCursor(); 
//do the logic using the myCursor functions
...
//refresh the collection to the changes reflect in the list
col.refresh();

在这里您可以查看有关它的更多信息。

于 2013-07-11T06:42:51.007 回答
0

您可以将事件侦听器添加到列表中,以便每当发生选择/取消选择时都会触发它。

<s:List id="myList"
    labelField="firstName" 
    change="selectionChangedHandler(event)"
    dataProvider="{peopleArray}">
</s:List>

....
protected function selectionChangedHandler(event:IndexChangeEvent):void
{
    var currentIndx:int = event.currentTarget.selectedIndex;
    var currentDataItem:Object = event.currentTarget.selectedItem;
    peopleArray.removeItemAt(currentIndx);
    peopleArray.addItemAt(currentDataItem,0);
    peopleArray.refresh();
}

我还没有运行它,但您可能也需要在刷新的列表上设置选择。

于 2013-07-11T06:57:00.030 回答