VirtualMode = Trueを使用しているときにWinForms ListViewを更新するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/223516

質問

非常に遅い大規模なListViewを備えたアプリがあるため、VirtualModeを実装しています。 MSDNは、リストビューの途中で新しいアイテムを追加および削除する方法をカバーしていないようです。

たとえば、ListViewには1000個のアイテム(ディスク上のファイルを表す)があり、ListViewの初期読み込み後(RetrieveVirtualItemイベントによる)、一部のファイルは削除され、一部は更新後にVirtualListSizeが同じになるように追加されます。

質問1)リストビューに「これらのアイテムは変更/削除されました」と言って、再クエリする方法を教えてください

さらに、ファイルの一部が変更されただけであり、変更されたステータスをリストビューに反映したいと思います。

質問2)VirtualModeを使用すると、以前使用していたItemsコレクションにアクセスできません(そのコレクションでContainsKeyメソッドを使用しました)。リストビューでアイテムを見つけるにはどうすればよいですか。

簡単に聞こえますが、私には見えません。非常に感謝ヘルプ。

ライアン

役に立ちましたか?

解決

アイテムを追加または削除するには、simplayがVirtualListSizeをアイテムの総数に設定します。個々のアイテムを更新するには、RedrawItemsを使用します。

特定のアイテムを見つけるには、既存のコンテナを使用します。リストビューに戻らないでください。リスト内のインデックスは、ListViewのアイテムと一致する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top