2012-07-04 68 views
1

我有一個ListView並將其分組。用戶有不同的導航方式,根據他的導航方式,我希望在頁面打開時有一個特定的組。將WinRT ListView滾動到特定的組

我嘗試設置這些:

itemGridView.ScrollIntoView(....); 
itemGridView.SelectedIndex = ....; 
itemGridView.SelectedItem = ....; 

其中itemGridView是ListView控件的名字,但沒有的,似乎工作。

任何幫助表示讚賞,謝謝。

回答

1

您可以通過一些可視化遍歷來查找屬於ListView模板一部分的ScrollViewer,找到該組並將ScrollViewer滾動到您的組的位置。

+0

明天我會試一試。我希望得到一個更簡單的解決方案,但是如果一個人不得不遍歷一個可視化樹,那麼一個人必須遍歷一個可視化樹:D –

+0

WinRT XAML工具包應該很容易。只需調用var sv = itemGridView.GetFirstDescendantOfType (),然後var groupView = sv.GetDescendantsOfType (),其中(gv => gv.DataContext == yourGroupViewModel),然後是sv.ScrollIntoView(gv)。那麼除非它不工作,當然... :) –

+0

如果一切都是數據綁定的話,何時以及何時安全地尋找後代?我在頁面的Loaded事件處理程序中嘗試過,但似乎並非所有組都已創建(例如,後代列表有3個項目,即使我有5個組等) –