Flex 如何在 mx:List 中选择或取消选择项目(多选)时更改 dataProvider 中的项目
我只想让我的数据动态地反映我在列表中选择的项目。基于对列表进行一些分类,例如,选择列表时首先在列表中选择选定的项目,并在取消选项时返回原始位置。
Flex 如何在 mx:List 中选择或取消选择项目(多选)时更改 dataProvider 中的项目
我只想让我的数据动态地反映我在列表中选择的项目。基于对列表进行一些分类,例如,选择列表时首先在列表中选择选定的项目,并在取消选项时返回原始位置。
您可以将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();
在这里您可以查看有关它的更多信息。
您可以将事件侦听器添加到列表中,以便每当发生选择/取消选择时都会触发它。
<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();
}
我还没有运行它,但您可能也需要在刷新的列表上设置选择。