2008-10-21 25 views
3

我有一個很大的ListView應用程序,速度非常慢,所以我實現了VirtualMode。 MSDN似乎沒有涵蓋如何添加和刪除列表視圖中的新項目。如何在使用VirtualMode = True時更新WinForms ListView?

例如,ListView有1000個項目(表示磁盤上的文件),並且在ListView的初始填充(通過RetrieveVirtualItem事件)之後,一些文件將被刪除並添加一些,以便VirtualListSize甚至可以在更新。

問題1)如何對ListView'這些項目已被更改/刪除'說,以便它重新查詢?

此外,一些文件只是改變,我想反映他們在列表視圖中更改的狀態。

問題2)如果VirtualMode不允許我訪問以前使用的Items集合(我在該集合上使用ContainsKey方法),如何在listview中找到一個項目。

聽起來很容易,但我自己看不到它。非常感謝。

Ryan

回答

3

要添加或刪除項目,請將VirtualListSize設置爲項目的總數。刷新單個項目使用RedrawItems。

要找到一個特定的項目,你使用你已經擁有的容器,不要回到ListView。列表中的指示符應與ListView中的項目匹配。

相關問題