VirtualCollectionを使って
DataGridのスクロール処理をロードオンデマンド化する
VirtualCollectionを使うとスクロール処理に連動したロードオンデマンドも簡単に実現できます。ページングは「いちいちページをクリックする」労力が発生することもあり、ユーザー視点では比較的負荷が高いUI操作ですが、それに比べるとスクロール操作はマウスのホールド&ドラッグだけなので、より自然なデータブラウジング方法として好まれる場面は多いです。
以下の実行例スクリーンショットを見ると、スクロール操作に連れて必要なデータリクエストが行われている様子が確認できます。例えば数万件といったデータをスクロール・ブラウジングする必要があるような要件がある場合、このようなロードオンデマンドの実装が必須となるでしょう。
スクロール処理にロードオンデマンドを適用する際の実装については、ページングを使用する場合とほとんど変わりません(VirtualCollection.PageSizeプロパティの指定が不要、というくらいです)。詳しくはサンプルコードをダウンロードして動作と合わせて確認してください。また、VirtualCollectionのその他の機能については以下のオンラインヘルプ トピックも併せて確認してください。
- NetAdvantage Silverlight LOB 2010.1 オンラインヘルプ
- VirtualCollectionについて(概要)
- VirtualCollectionで開始(チュートリアル)
- VirtualCollectionの使用(詳細機能)
まとめ
今回の記事ではVirtualCollectionを使ったロードオンデマンドの実装に焦点を当て、標準のDataGridコントロールと組み合わせを例にとって解説しました。もちろんNetAdvantageに含まれる、高機能なデータグリッドコントロールxamWebGridと組み合わせて使うと効果が倍増します(xamWebGridについては『Silverlight用の高機能データグリッドコントロール「xamWebGrid」活用術』もご覧ください)。xamWebGridが持っている「遅延スクロール機能」と組み合わせることや、編集操作やグルーピング、フィルタといった拡張機能にも対応することができます。
NetAdvantage Silverlightには今回取り上げたVirtualCollectionをはじめ、ドラッグ&ドロップ フレームワーク、コントロールの状態保持を実現するパーシステンス フレームワークなど、一般的なUI要件の実装をスムーズに行うためのフレームワークも多く収録されています。これらのフレームワーク群はリッチなコントロールが必要ないケースでも単体で活用できるものなので、ぜひチェックしてみてください。