これは、MVVM WPFアプリでリストボックスのスクロール位置を制御する方法で提起された質問と同様の質問ですが、代わりに、Windowsストアアプリ内から同様の効果を達成しようとしています。ListView
MVVMスタイルのアプリのビューモデルから現在の(または任意の)アイテムにスクロールします。
WPFと比較した場合、WinRTにはいくつかの制限があります。
IsSynchronizedWithCurrentItem
プロパティは、または関連するクラスではサポートされていません(ListView
プロパティは存在しますが、プロパティを使用すると、現在サポートされていないことを示すランタイム例外がスローされます)。ICollectionView
、CollectionViewSource
およびその他の関連するタイプは部分的にしかサポートされていません。
幸い、このCollectionViewSource
問題は、CodeProject(http://www.codeproject.com/Articles/527686/A-WinRT-CollectionView-class-with-Filtering-and-So)のBernardoCastilhoのソリューションによってエレガントに解決されています。残念ながら、サポートが不足してIsSynchronizedWithCurrentItem
いるため、残りの問題を解決するのは困難です。
すでにいくつかの同様の質問があります(たとえば、Windows 8 MetroスタイルのListView自動スクロール)が、MVVMの観点からは問題に対処しておらず、プロジェクトで最小限のコードビハインドでクリーンなMVVMアーキテクチャを維持することはできません。