PresentationFrameworkCollection

PresentationFrameworkCollection

在wpf和silverlight中,我们看到了以下类:
UIElementCollection
ItemCollection
RowDefinitionCollection
ColumnDefinitionCollection
PointCollection
还有更多……
为什么他们有这些类,每种类型一个类?为什么他们不使用泛型类,比如Collection<T>
另外,我在silverlight中看到,所有这些类都是从PresentationFrameworkCollection<T>派生的,如下所示

public sealed class ItemCollection : PresentationFrameworkCollection<Object>
public sealed class PointCollection : PresentationFrameworkCollection<Object>
public sealed class IconCollection : PresentationFrameworkCollection<Object>
//and so on...

如果所有这些都是从一个公共类派生的,并且我在派生类中没有看到任何公共类(它们都是空的!),那他们为什么首先定义它们?我觉得在派生类中有一些声明为privateinternal的差异。但我不太清楚。
请帮助我理解这些课程的设计。特别是,为什么他们使用它们而不是框架附带的泛型类?有什么好处?

最佳答案

它们在内部的工作方式是不同的,基于它们设计的用例。例如,UIElementCollection不仅保存元素,还确保它们被添加并从相应的可视树中移除…

08-25 20:36