我需要一个适用视图模型的列表,并且正在讨论是尝试制作复合集合还是创建它们继承的共享接口。一种方法是首选吗?
我假设复合集合维护独立于基础集合的项目索引,因此可以有复合集合项目#0(项目类型A)1(项目类型B)2(项目类型A)3(项目类型 A),并保持列表中的顺序。
这两种方法之间有什么主要区别吗?
我想我会更详细地解释我通常做什么。通常我需要一个 selectedItems 列表,我可以创建一个 Object 类型的 ObservableCollection,然后让树视图根据数据类型应用不同的数据模板。然而,我认为最好有一些类型安全并且知道不只是任何对象都被抛出到集合中,所以我实现了一个接口。然而,有时我觉得很可笑,因为实现接口的对象之间没有足够的共享属性,所以我觉得尝试制作一个共享接口很可笑。
使用每种可能类型的单独列表实现复合集合可能更有意义。