私はリストオブジェクトを持っており、dataProviderを通じてaddItemを使って項目を追加しています。indexOfを使用してdataProviderにアクセスする
アイテムをリストに追加する前に、重複していないことを確認したいと思います。 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>
ありがとうございます。それは完璧に働いた!私はdataProviderのcontainsメソッドを使いました。これは、私が望むやり方で動作します。 – metric152
うれしい私は助けることができました! –