【发布时间】:2013-02-27 07:20:41
【问题描述】:
这与How to control the scroll position of a ListBox in a MVVM WPF app 中提出的问题类似,但相反,我试图在 Windows 应用商店应用程序中实现类似的效果:我想知道如何将 ListView 滚动到当前MVVM 风格应用中视图模型中的(或任意)项目。
与 WPF 相比,WinRT 存在一些限制:
-
ListView或相关类不支持IsSynchronizedWithCurrentItem属性(该属性存在,但使用它会引发运行时异常,表明当前不受支持); - 仅部分支持
ICollectionView、CollectionViewSource和其他相关类型。
幸运的是,Bernardo Castilho 在 CodeProject (http://www.codeproject.com/Articles/527686/A-WinRT-CollectionView-class-with-Filtering-and-So) 的解决方案优雅地解决了 CollectionViewSource 问题。不幸的是,缺乏对IsSynchronizedWithCurrentItem 的支持使得解决问题的其余部分变得很棘手。
已经有几个类似的问题(例如Windows 8 Metro style ListView auto scroll),但它们没有从 MVVM 的角度解决问题,也不允许我在项目中使用最少的代码隐藏来维护干净的 MVVM 架构。
【问题讨论】:
标签: c# mvvm windows-runtime windows-store-apps winrt-xaml