我需要一个适用的视图模型列表,并且正在争论是尝试创建一个复合集合,还是创建一个他们继承的共享接口。有一种方法更好吗?
我假设复合集合维护独立于基础集合的项的索引,以便可以使复合集合项#0(项目类型A) 1(项目类型B) 2(项目类型A) 3(项目类型A)保持列表中的排序。
这两种方法之间有什么重大区别吗?
我想我应该更详细地解释一下我通常做什么。通常,我需要一个selectedItems列表,我只需要创建一个ObservableCollection类型的对象,然后让treeview根据数据类型应用不同的数据板。但是,我认为最好有某种类型的安全性,并且知道不只是在集合中抛出任何对象,所以我实现了一个接口。但是,有时我觉得很可笑,因为实现接口的对象之间没有足够的共享属性,所以我觉得尝试创建一个共享接口是很可笑的。
有可能实现一个包含每种可能类型的单独列表的复合集合会更有意义。
发布于 2013-11-13 22:55:04
根据msdn (on CompositeCollection):
允许将多个集合和项显示为单个列表。
除非这是您所需要的(我不认为是这样),否则您应该选择ObservableCollection<T>。由于它是通用的,它可以避免不必要的、容易出错的铸件.消除转换其元素的需要也会导致与值类型一起使用时的性能改进(即,不使用装箱/取消装箱)。
此外,如果不了解更多的视图模型,很难判断让所有视图模型实现共享接口是否是一个好选择。问问自己:这有道理吗?他们之间真的有关系吗?集合的客户端是否能够平等地对待该接口的实例,而不管它们的实际类型如何?
https://stackoverflow.com/questions/19966057
复制相似问题