Using MVVM with CollectionViewSource

本文关键字:CollectionViewSource with MVVM Using | 更新日期: 2023-09-27 18:13:24

我试图使用CollectionViewSource来显示一些数据,我所看到的所有示例/教程都有一个自定义类,它们在另一个类中使用,继承自ObservableCollection。我是新使用CollectionViewSource和这只是我的MVVM的第三个实现,所以我可能会误解编程模式,但我的问题是:我在哪里把ObservableCollection类和/或自定义类?

我觉得他们应该去模型,但我不确定什么被绑定到视图。我只是建立这些外部类,然后在模型/ViewModel引用它们吗?

感谢您的帮助

Using MVVM with CollectionViewSource

首先,我想说的是,没有必要从ObservableCollection<T>继承,除非你添加的功能,我很少,如果有的话,实际上需要做的。

在大多数情况下,我创建ObservableCollection<T>类型的ViewModel属性,然后在加载数据时从模型填充它们。这样做的好处是模型不需要使用ObservableCollection<T>(它可以是任何IEnumerable<T>),这意味着以后当我(几乎不可避免地)想要包装我从另一个实例特定的视图模型中从模型返回的任何东西时,我只需要改变我现有的视图模型类。

一旦你在你的视图模型上有一个属性,你可以简单地将你的CollectionViewSource绑定到该属性,它将从那里做一切。值得注意的是,CollectionViewSource实际上并不关心属性的类型,因此您可以将您的集合暴露给视图作为ICollection<T>, IEnumerable<T>或(我相信)甚至作为objectCollectionViewSource仍然会将其视为与ObservableCollection<T>相同。

抱歉,我的回答有点散漫。简洁的说法是"视情况而定",但在大多数情况下,我倾向于遵循这种一般方法。

相关文章:
  • 没有找到相关文章