我有我自己的DefferedList:IList類。我推翻爲什麼虛擬化列表框請求舊項目
計數,的IndexOf,此[]
成員和放
的Debug.WriteLine( 「獲取」 +指數);
進入此[int index]。
然後我將這個類的實例綁定到ListBox.ItemSource。
一切都很好,但UI虛擬化對我來說有點奇怪。我運行應用程序。列表框由前17個項目(從0到17)填充。然後我跳到第200項
TheList.ScrollIntoView(Item200);
ListBox請求第200個項目,然後再次項目從0到16,最後是184-209。
那麼爲什麼它再次要求0-16項目,而他們不再可見?它非常嚴重地影響了我的數據虛擬化的性能。
如何避免它?
您提供的代碼鏈接有點複雜,難以理解......您是否與代碼所有者協商過? –
你設置了'VirtualizationMode = Recycling'嗎?順便說一句,你如何知道哪些項目在滾動時被請求? – sll
我讓我的問題更清楚一點。更改VirtualizationMode沒有幫助 – Pashec