2013-06-03 44 views
2

在WinRT上,我有一個gridview。我想在gridview結束時執行一個方法。WinRT gridview滾動檢測

但是,沒有類似於gridview的事件方法。

我嘗試檢測gridview的操作,但似乎我的gridview中包含的scrollview捕獲所有的事件。我怎樣才能得到這個scrollviewer?即使後,我的ScrollViewer,我怎麼能知道這ScrollViewer中的位置(reachedEnd例如?)

感謝

+0

你需要什麼?如果要在用戶到達結尾時加載新項目,則應該讓您的集合實現ISupportIncrementalLoading。如果你這樣做,網格將增量和自動加載你的數據。另請參閱http://msdn.microsoft.com/en-us/library/windows/apps/hh994637.aspx –

+0

因爲我的應用程序使用跨平臺的核心,我不能使用像ISupportIncrementalLoading(因爲取決於Windows UI)的東西。我忘了提及它。 – Rototo

回答

5

您可以使用VisualTreeHelper找到ScrollViewer類型的GridView的後代,然後訂閱其ViewChanged事件。在事件處理程序中,您可以檢測到您在ScrollViewer中的位置。然後,您會將ScrollViewer.ScrollableWidthHorizontalOffset進行比較,以查看是否已達到最終結果。

如果你想驅動一些自定義的佈局/動畫邏輯,但是使用ISupportIncrementalLoading,但是如果你想要做的是加載更多的數據,則可以使用它。

+0

非常感謝,問題是我的gridview在加載後只有1個孩子,一個邊框。在Xaml中,我只使用gridview,但是這個gridview有一個滾動...看起來gridview有一個實習生滾動並且無法訪問它。最後,我通過使用它成功:http://stackoverflow.com/questions/11830574/horizo​​ntal-offset-for-scrollviewer-in-gridview-c-sharp它的工作原理:-) – Rototo