UIElementCollection和Collection <uielement>之间的区别?</uielement>

时间:2011-08-08 12:10:06

标签: c# wpf silverlight collections uielement

在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。但我不确切知道。

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

1 个答案:

答案 0 :(得分:6)

根据他们设计的用例,他们内部工作不同。例如,UIElementCollection不仅包含元素,还确保将它们添加到相应的可视化树中...