ListView を含むフォーム (.NET 4.5 VS.2015) があり、数百行以上の行が含まれている可能性があります。実験では、常に約 20 個しか表示されない場合にすべての ListViewItems をロードしようとするため、フォームが動かなくなって応答しなくなることが既に示されています。
したがって、単純なキャッシュを使用して ListView に仮想モードを実装しました。VirtualListSize を設定し、仮想モードを有効にして、RetrieveItems イベントと CacheVirtualItems イベントの両方にイベント ハンドラーを接続しました。
ここで、ドキュメントに従って、RetrieveItems の前に CacheVirtualItems が呼び出され、ListView が表示する予定のアイテムの範囲をキャッシュに取り込むことができると信じさせられます。
しかし、私が見る限り、最初の RetrieveItems の前に CacheVirtualItems が呼び出されることはありません! キャッシュを作成して事前に入力し (少なくとも容量を設定)、キャッシュ ミス時に適切に入力できるように、この関数が呼び出されることが期待されます。
私は何かをよく理解していませんか?アプリケーションがリクエストの準備をするために CacheVirtualItems が最初に呼び出されない場合、何がポイントになるのでしょうか?