2012-09-04 21 views
0

我有可能有非常不同的大小的項目。他們可以包含圖片,或兩個。我應該如何使用列表(20-30)具有不同高度的項目?

我用ScrollViewer裏面的ListBox,滾動很快,但初始化花費時間。

我試圖使用ListBox或LongListSelector,我不能說它的工作原理:滾動是非常跳動,有些滯後。

我可以使用這些項目來實現足夠快的初始化和平滑滾動嗎?

+0

除非列表中需要滾動的項目,否則在ScrollViewer中不需要列表框。列表將自動滾動。 –

+0

@WilliamMelani我在ScrollViewer中使用ListBox,因爲它有更快更平滑的滾動。當ListBox有固定大小時,我沒有問題。在這個(問題)案例中,項目可能非常不同,其中一些可能比屏幕更長。 –

回答

3

爲了克服滾動時發生的黑色現象,您需要虛擬化滾動控件。爲此,您應繼承IList並創建一個類似於ObservableCollection的Collection,您必須根據您的緩存需求覆蓋默認索引器,同時爲您的項目維護一個緩存。我覺得這可能是你正在尋找的:http://blogs.msdn.com/b/ptorr/archive/2010/08/16/virtualizing-data-in-windows-phone-7-silverlight-applications.aspx

該頁面上有一個示例項目。試試看。

我也覺得你面臨這個問題http://blog.rsuter.com/?p=258。我想這會使用虛擬化本身來解決。對於初始化,請使用延遲加載。希望它有幫助

相關問題