MVVM:CollectionView在ViewModel或CollectionViewSource中的xaml?

我正在开发一个使用MVVM模式的WPF应用程序,我需要显示ListView中的项目列表(使用筛选),所选项目的字段显示在主/细节视图中。 我在以下两种方式之间撕裂:

  1. 在我的ViewModel中暴露一个CollectionView,并绑定到这个。
  2. 在我的ViewModel中暴露一个普通的IList,并使用CollectionViewSource在XAML中创buildCollectionView。

有没有一个可以接受的方法呢? 任何想法的最佳途径?

我做前者(从VM中暴露CollectionView ),但真正重要的是你的过滤逻辑是。 即使视图必须将CollectionViewSource连接到VM,也应该在VM中进行testing。 也就是说,我不认为有什么特别讨厌或反MVVM从你的虚拟机暴露一个CollectionView。

我知道我有点晚回答你的问题,但我今天才看到。

我已经创build了使用CollectionViewSource并博客的master / detail viewmodels。

我在这里写了关于master / detail表的视图模型: http : //reyntjes.blogspot.com/2009/04/master-detail-viewmodel_24.html

您还可以在我的博客页面上findobservablecollection类的视图模型。

也许你觉得它对你有用。