2016-04-01 35 views
0

我需要在按下後退按鈕後恢復狀態。目前,我正在這樣做:在哪個事件可以安全地調用ListView上的ScrollIntoView?

<ListView Name="listView" ItemsSource="{Binding MyItems}" Loaded="ListView_Loaded" /> 

private async void ListView_Loaded(object sender, RoutedEventArgs e) { 
    await Task.Delay(100); 
    listView.ScrollIntoView(myItem); 
} 

當我跳過Task.DelayScrollIntoView調用將被忽略,因爲myItem佔位符尚未初始化。

其中ListView事件我需要訂閱嗎?

回答

1

爲什麼不能在頁面的OnNavigatedTo函數裏調用這個函數。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
     listView.ScrollIntoView(listView.Items[0]); 
} 
+0

這不起作用,因爲即使在構造函數中分配了'DataContext','ListView'完全初始化之前'OnNavigatedTo'被觸發。 –

+0

如果您想將列表視圖重置爲第一項,這會起作用,因爲當您導航回該頁面時,默認情況下維持列表視圖的狀態。如果您已設置'NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;' – Jerin

+0

我沒有遇到此問題。可能是影響這個的'CollectionViewSource'。我正在使用它進行分組。 –

相關問題