3 層アーキテクチャ (UI、BL、DAL) の WPF アプリケーションがあります。多数の行を含む WPF および DevExpress データグリッドの読み込みを処理する必要があります。BL メソッドは、WPF データグリッドにバインドされる監視可能なオブジェクトのコレクションを返します。レコード数が非常に多い場合、UI が応答しなくなります。そのため、BL メソッドがクエリを実行してデータを処理するときに、完了した作業のパーセンテージをプログレス バーに表示するようなソリューションを実装する必要があります。ここでは、クエリが実行されたときにすぐにレコードの総数を取得する必要があり、各行を処理した後、「1/2000 ドキュメントの処理」のように、ラベルでアイテム処理の現在のインデックスを表示する必要があります。
上記の機能を実現する最良の方法は何ですか。MVVM パターンを使用しています。BL でレコードをフェッチして処理する方法を変更する必要があるかどうか (現在は、BL メソッド内のフェッチと処理 (データリーダーからカスタム オブジェクトへの値のマップ))。または、ユーザーがデータグリッドをスクロールするときに、ページングされた方法でデータグリッドに行をロードすることを探しています。
サンプルのリンクは大歓迎です。
編集: @Big Daddy のソリューション 1) ビュー モデルに新しいプロパティを追加して、TotalCount と PercentComplete を取得します。2) ビューモデルを Search メソッドに渡します。3) BGW を使用してプロパティを更新します。
上記は実行可能な解決策のようです。しかし、ビューモデルに依存せずにこれを解決する他の方法があるかどうかを知りたいと思っています。この種の操作に使用できる設計パターンはありますか?