9

仮想モードで ListView を使用している場合、私が理解しているように、リスト ビューはリスト内の少数の項目のみを追跡します。ユーザーがスクロールすると、仮想リストから表示する必要がある項目が動的に取得されます。

しかし、項目がマスター リストに追加または削除された場合はどうなるでしょうか。リスト ビューで表示されているインデックスの範囲外でアイテムが追加/削除された場合、ユーザーがそのインデックスにスクロールすると、リスト ビューに追加/不足しているアイテムが表示されると思います。これは正しいです?しかし、ユーザーが現在表示しているインデックスの範囲にアイテムが追加/削除された場合はどうなるでしょうか? リスト ビューをトリガーして現在表示しているアイテムを更新し、新しいアイテムや不足しているアイテムを表示するにはどうすればよいですか?

参考までに、違いがある場合はObjectListViewを使用しています。

4

1 に答える 1

8

仮想リストは、アイテムのリストについて何も知りません。小さなセットでさえ、それらを追跡しません。「n行目に何を表示したいですか?」と尋ねるだけです。

マスターリストが変更された場合は、リストを再描画するだけです。Invalidate()あなたのためにそれをします。次に、リストビューは、コントロールに表示されるすべての行に何を表示するかを再度尋ねます。

ObjectListViewを使用している場合、仮想リストの速度の利点と通常のObjectListViewの使いやすさを提供するFastObjectListViewの使用を検討しましたか?

于 2010-03-27T00:04:49.227 に答える