1

Flex 4.6 で MX Tree コントロールを使用しています。そのデータ プロバイダーは、ネストされた ArrayCollection です。コントロールの仕組みは、ツリー ノードが展開されると、イベントが別のコンポーネントにバブリングされ、イベントを検出してサーバーからデータを取得し、ArrayCollection (つまり、クリックされたブランチの ArrayCollection) を更新することです。しかし、特定のブランチを閉じて再度展開するまで、更新されたデータはツリーに表示されません。

例えば

  • + フォルダ 1
  • + フォルダ 2
  • + フォルダ 3

最初は、ユーザーがフォルダ 1 のデータを展開すると、フォルダ 1 の子は空の ArrayCollection です。バックエンドからフォルダ 1 のデータがフェッチされ、子の ArrayCollection に追加されます。しかし、これはフォルダー 1 の下の子を表示しません。フォルダー 1 を閉じて再度開くと、表示されます。データが ArrayCollection に追加されると、表示が更新されるはずだと思いました。誰かが私が間違っているかもしれないことを教えてもらえますか?

4

2 に答える 2

0

私の経験では、リストを再描画する必要があることをツリーコントロールに通知するために以下が機能しました。

  • arrayCollection.refresh();
  • tree.invalidateList();
于 2012-09-07T14:59:58.547 に答える
0

問題の解決策を見つけました。子 ArrayCollection クラスのいずれかが更新されたら、メインの ArrayCollection クラスで itemupdated を呼び出す必要があります。これにより、ビューが正しく更新されます。したがって、上記の例では、ユーザーがフォルダー 2 をクリックすると、フォルダー 2 の子配列コレクションにデータを追加するモデルにイベントが伝達されます。これが完了したら、更新された項目をフォルダー 2 としてメインの ArrayCollection で itemupdated を呼び出す必要があります。 、これによりツリー ビューが正しく更新されました。

于 2012-09-09T02:04:10.383 に答える