アイテムの垂直ListViewを持つビューを持つWinRT/C#/XAMLアプリがあります。アイテムの量に応じて、ListViewは垂直スクロールバーを表示します。XAMLの定義は次のとおりです。
<UserControl.Resources>
<CollectionViewSource
x:Name="myViewSource"
Source="{Binding myViewModel.Items}" />
</UserControl.Resources>
...
<ListView
x:Name="myListView"
ItemsSource="{Binding Source={StaticResource myViewSource}}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
</ListView>
これで、このビューに移動するたびに、コードビハインド()からビューモデルのデータバインドされたSelectedItemプロパティを設定することにより、ListViewの選択されたアイテムが選択されますOnNavigatedTo
。私の問題:ListViewはこの選択されたアイテムに自動的にスクロールしません。スクロールバーはListViewの上部に残り、ユーザーは選択したアイテムを表示するために手動でスクロールする必要があります。
myListView.ScrollIntoView(MyViewModel.SelectedItem);
コードビハインド(in)でSelectedItemを設定して実行しようとしましOnNavigatedTo
たが、動作しません。スクロールバーは上部に残ります。
SOでこのスレッドを認識しています:WinRTListViewを特定のグループにスクロールします。これも同様の問題のようです。しかし、ListViewのビジュアルツリーを手動で、またはWinRT XAML Toolkitを使用してウォークすると、ScrollViewerが見つかりません(代わりにnullを返します)。