2

DataGrid は仮想化をサポートしていることを知っているので、表示されている行に対してのみグリッド セルを作成します。ただし、これは DataGrid のサイズが制限されている場合にのみ機能するようです。

私のシナリオでは、DataGrid はスクロール ビューアー内に配置されます。

<ScrollViever>
    <StackPanel>

        <more elements .../>

        <DataGrid ... />

        <more elements .../>

    </StackPanel>
</ScrollViever>

これは仮想化を壊すようです。DataGrid が多数の項目を表示する必要がある場合、外側の ScrollViewer で下にスクロールする前であっても、ビジュアル ツリーが非常に大きくなります。

ScrollViewer が下にスクロールしているときに DataGrid がすべてのセルを事前に作成するのを防ぐ方法はありますか?

編集: 基本的に、これをホストするページは、上部にいくつかのテキスト、大きなテーブル、下部にいくつかのテキストがある Web ページのようにする必要があります。上部/下部が常に表示され、グリッドのみがスクロールされるドックビューの代わりに、ページ全体がスクロールする必要があります。セットアップはこれを達成しますが、すべてが事前に作成されていることに苦しんでいます。

別の編集: データグリッドの特定の行がスクロールされて表示されたことを検出する方法はありますか? 典型的な遅延読み込み記事は、データグリッドのスクロールビューアーを使用してグリッドにさらに項目を追加しますが、ここでは機能しません。

4

2 に答える 2

0

Don't place it in a ScrollViewer, it will stretch as long as it desires in there, which will be its whole size.

于 2014-01-20T14:00:00.683 に答える