0

楽しみのためだけに、少しだけ Flex を学び始めています。おそらく、まだ何か新しいことを学べることを証明するためです :) プロジェクトのアイデアがあり、その一部の 1 つはツリー コンポーネントであり、状況に応じてさまざまな方法でデータを表示できます。構成。

アイデア

ID、日付、時刻、名前、説明などのプロパティを持つオブジェクトのリストがあります。そして時々リストは次のように表示されるべきです:

  1. 第 1 レベル: 日付
  2. 第 2 レベル: 時間
  3. 第 3 レベル: 名前

そして時々このように:

  1. 第 1 レベル: 年
  2. 第 2 レベル: 月
  3. 第 3 レベル: 日
  4. 第 4 レベル: 時間と名前

レベルとは、もちろんネストのレベルを意味します。したがって、年、月、日、時間などを表すことができます。

問題

それを行うための最良の方法は何ですか?つまり、コンポーネントの外側、またはフレックスの外側でさえ、さまざまな方法でネストするためのデータを準備する必要がありますか? C# の Web サービス レベルで実行できます。ここでは、データベース アクセス レイヤーを使用して Flex に送信し、XML またはオブジェクトの配列を表示する準備ができています。しかし、それが追加の、おそらく不必要なネットワーク トラフィックを引き起こさないのだろうかと思います。

コンポーネントのコードをハックして、データ オブジェクトを XML または ArrayCollection に変換しようとしましたが、Flex について十分な知識がなく、重複を排除したり、キー値によって特定のデータを取得したりすることに行き詰まりました。通常、そのようなことを行うために、マップ、セット、ベクトルを使用した STL を使用していますが、Flex 配列や Dictionary でさえ少し混乱していることに気付きます (言語リファレンスを読み、Google で検索してもあまり運がありませんでした)。

質問

要約すると、選択したタイプの表示用にツリー コンポーネント データを準備する必要がありますか、それともコンポーネント (または ActionScript で記述されたヘルパー クラス) 内で内部的に実行する必要がありますか?

追加の質問

表示方法ごとに個別のデータモデルを準備し、それらの間でデータを転送するコンバーターを用意して、結果のモデルを dataProvider としてコンポーネントにバインドするのは良い方法でしょうか? それとも、それを行うための他の賢い方法があり、私のデータは自動的に再編成されますか? :)

4

1 に答える 1

0

Web サービスから生のデータ ストリームを受信し、フレックス クライアント内で (ヘルパー Actionscript クラスで) さまざまな方法で処理することをお勧めします。私が見る利点は次のとおりです。

1) これにより、責任が適切に分離されます。たとえば、Web サービスはデータについて認識している必要がありますが、データがどのように表示されるかは認識していません。

2) 処理の高速化とクライアントの応答性。ビューの交換に Web サービスの呼び出しは含まれず、Flex クライアントは、余分な Web トラフィックよりもデータ自体の処理が高速になる可能性があります。

3) 可用性の向上。Web サービスへの余分な呼び出しがなければ、ネットワーク障害の可能性は低くなります。

于 2010-03-24T22:38:12.957 に答える