[英]Virtualizing/Paging Data in ObservableCollection bound to ItemsControl in WinRT
我們如何可視化設置為ItemsControl的ItemSource的ObservableCollection或List中的數據? 由於某些技術原因(設計約束),我們在ScrollViewer中使用ItemsControl來創建自定義集合控件,我們不能使用ListView或GridView控件,后者通過ISupportIncremental支持VirtualizingStackPanel和Data Virtualization,因此我們必須在ScrollViewer中使用ItemsControl 。 因此,我們的ScrollViewer控件如何通知綁定的可觀察集合滾動已結束並將更多數據加載到ObservableCollection中,我發現了一些有關隨機訪問數據虛擬化的信息,但不確定如何在WinRT,C#自定義控件中實現該信息。項目,示例代碼會有所幫助
如果要實現自定義列表控件(如果您不使用ListView
, GridView
或ListBox
,則為您),則ScrollViewer
將需要成為其模板的一部分,因此您可以偵聽具有以下內容的ViewChanging
和ViewChanged
事件IsInertial
和IsIndeterminate
屬性,您可以使用它們來查看滾動是否已停止,並且可以使用這些屬性來確定是否有時間獲取更多數據,或者只是將一些占位符值放在items源中。 您可能還具有item來源屬性,並且由於您想進行自己的虛擬化-盡管您可以將ISupportIncremental
用作(希望)一個很好的示例,但您實際上不需要關心ISupportIncremental
。 您將實現自己的虛擬化面板和源列表。 ScrollViewer
視圖更改事件和面板布局將驅動從項目源加載的內容。
至於示例代碼-我還沒有看過,但也希望能看到一些!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.