2016-04-01 11 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); 
} 

私はMYITEMのプレースホルダがまだ初期化されていないためのscrollIntoView呼び出しは無視されTask.Delayをスキップした場合。

どれがリストビューイベント代わりに購読する必要がありますか?

答えて

1

なぜこれをOnNavigatedToのページの機能と呼んでください。

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

コンストラクタに 'DataContext'が割り当てられていても' listView'が完全に初期化される前に 'OnNavigatedTo'が起動されるため、これは動作しません。 –

+0

listviewの状態は、そのページに戻るとデフォルトで維持されるため、最初の項目にリストビューをリセットする場合に機能します。 'NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required; 'を設定した場合、 – Jerin

+0

この現象は発生しません。これに影響を与える 'CollectionViewSource'かもしれません。私はそれをグループ化に使用しています。 –

関連する問題