リストオブジェクトがあり、dataProviderを介してaddItemを使用してアイテムを追加しています。
リストにアイテムを追加する前に、それが重複していないことを確認したいと思います。dataProviderでindexOfを使用しようとしましたが、nullが返されます。配列にキャストしようとしましたが、機能しますが、要素がdataProviderに存在する場合でも、常に-1を返します。
私が使用できた唯一の方法は少しハッキーなようです。dataProviderで要素を見つけるためのより良い方法があるかどうか知りたいです。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" styleName="plain" applicationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.List;
[Bindable]
public var testListArray:Array;
public function init():void
{
testList.dataProvider.addItem('test');
testList.dataProvider.addItem('banana');
//search for element in dataProvider
if(testList.dataProvider.toString().indexOf('banana') > -1)
{
trace('found');
}
//search for element in dataProvider
if(testList.dataProvider.toString().indexOf('goat') === -1)
{
trace('not found');
}
}
]]>
</mx:Script>
<mx:List dataProvider="{testListArray}" x="260" y="204" id="testList" borderStyle="solid" borderColor="#000000"></mx:List>
</mx:Application>