UIElementCollection和Collection <UIElement>之间的区别?

Naw*_*waz 4 c# collections silverlight wpf uielement

在WPF和Silverlight中,我们看到了以下类:

  • UIElementCollection
  • ItemCollection
  • RowDefinitionCollection
  • ColumnDefinitionCollection
  • PointCollection
  • 还有更多....

为什么他们有这些类,每种类型一个类?为什么他们不使用泛型类Collection<T>

另外,我在Silverlight中看到,所有这些类都来源于PresentationFrameworkCollection<T>,as

public sealed class ItemCollection : PresentationFrameworkCollection<Object> 
public sealed class PointCollection : PresentationFrameworkCollection<Object> 
public sealed class IconCollection : PresentationFrameworkCollection<Object> 
//and so on...
Run Code Online (Sandbox Code Playgroud)

如果所有这些都来自一个公共类,并且我在派生类中看不到任何公共(所有这些都是空的!),那么为什么他们首先定义它们呢?我觉得在声明privateinternal派生类中存在一些差异.但我不确切知道.

请帮我理解这些课程的设计.特别是,为什么他们使用它们而不是框架附带的泛型类?有什么好处?

Dan*_*rth 6

它们在内部工作方式不同,基于它们的用例.例如,UIElementCollection不只是保存元素,还要确保它们是从相应的可视化树中添加和删除的...