2

Prism と MEF を使用して WPF GUI を作成しています。ユーザーが表示する前に WPF コントロールを事前設定する方法があるかどうか知りたいです。

具体的には、ListView を使用して、WCF 経由のネットワーク呼び出しで取得した約 8000 項目のリストを表示する UserControl があります。

ボトルネックになっているのはネットワーク呼び出しではなく、ListView 自体の作成であると判断しました。WPF ShellViewModel は現在、必要なすべてのデータがクライアント側に存在するようにネットワーク プリフェッチを行っていますが、Prism/MEF で依存性注入を使用しているため、ユーザーがこの ListView を含むタブをクリックし、その後にビューが作成されるまで、ビューは作成されません。 ListView の作成中に「フリーズ」します (8K 項目が取り込まれます)。ビューの依存関係の LazyLoading もこれに関与していると思われます。

この ListView の作成をアプリケーションのブートストラップ フェーズに移行する方法はありますか? 「ラグ」がないように、ユーザーがクリックする前にこのビューをロード/入力したいと思います。

表示するアイテムの数を減らすことはオプションではありません。

ありがとう。

4

2 に答える 2

3

仮想化を試してみてください。これがまさに必要なもののようです。

于 2012-05-04T07:18:41.910 に答える
1

これを試して

<ListView ItemsSource="{Binding Your8kCollection}">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
               <VirtualizingStackPanel />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        ...
 </ListView>
于 2012-05-04T07:47:48.000 に答える