2011-02-06 15 views

答えて

1

は「CollectionEvent.COLLECTION_CHANGE」イベントを使用して優れたソリューションです:

http://blog.flexexamples.com/2008/12/16/detecting-when-the-data-provider-of-a-datagrid-control-changes-in-flex/

+0

このイベントリスナーをListに追加しようとしましたが、呼び出されませんでした。 Listのデータプロバイダに追加した後は、一度呼び出されましたが、さらに変更が加えられた後は呼び出されませんでした。 – Anonymous1

+0

質問にいくつかのコードを追加できますか?実際には、イベントリスナーをデータプロバイダに追加する必要があります。いつでも新しいデータプロバイダを作成しないかどうかを確認します。この場合、新しいプロバイダはイベントサブスクリプションを保持しません。 – Dunaril

+0

2つのリストでドラッグ&ドロップを使用しています。次の2番目の例と多少似ています。http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7cfd.html – Anonymous1

0

あなたがICollectionViewの(別名のArrayCollection)で作業している場合は、あなたが「collectionChangeのイベントリスナーを追加することができます"イベント。

ドキュメント:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/collections/ListCollectionView.html#event:collectionChange

はMXMLドキュメント内にある場合にUIコンポーネントのdataProviderプロパティはデータバインディングのソースでなければなりません。したがって、{myComponent.dataProvider.length}はユースケースであれば値を別のものにバインドできます。

0

私がそれを得ることができる唯一の方法は、actionscriptコードにバインディングを作成することでした。このようなもの:

protected function creationCompleteHandler(event:FlexEvent):void { 
    BindingUtils.bindSetter(myHandleFunction, myList, "dataProvider"); 
} 

myHandleFunctionは、バインドされたプロパティの型のオブジェクトをパラメータで受け取ります。

関連する問題