0

Prismアプリケーションには、サービスから取得するのに3〜8秒かかるデータをロードするモジュールがいくつかあります。

私のブートストラッパーで次のようなことを言うことができるようにしたいと思います。

擬似コード:

Customers allCustomers = Preloader(Models.GetAllCustomers);

そして、これはバックグラウンドスレッドで実行され、ユーザーが実際に変数「allCustomers」を必要とするときに、完全にロードされます。

このタイプのプリロードを行う自動サービスはPrism/Unityにありますか?

4

1 に答える 1

1

いいえ、ありません。

でも...

ビューが使用できる ConfigureContainer メソッドのコンテナーに、ContainerControlledLifetime を使用して ViewModel を追加することを検討できます。ViewModel のコンストラクターでスレッド化された要求を開始し、ビューがこの ViewModel をコンテナーからプルできるようにします。

GetAllCustomers メソッドの起動が完了する前にコンテナーから ViewModel を取得した場合でも、顧客を格納するプロパティが INotifyPropertyChanged を正しく実装していれば、正しく通知されます。

より適切な場合は、ブートストラップではなく、モジュールから (Initialize メソッドで) これを行うこともできます (たとえば、モジュールが実際に顧客のモデルを知っている場合)。

于 2009-07-28T17:50:18.427 に答える