Разница между UIElementCollection и Collection <UIElement>? - PullRequest
4 голосов
/ 08 августа 2011

В 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...

Если все они происходят от общего класса, и я не вижу ничего открытого в производных классах (все они пусты!), То почему они определили их в первую очередь? Я чувствую, что есть некоторые различия, которые либо объявлены private или internal в производных классах. Но я точно не знаю.

Пожалуйста, помогите мне понять дизайн этих классов. В частности, почему они использовали их вместо общих классов, которые поставляются с фреймворком? Каковы преимущества?

1 Ответ

6 голосов
/ 08 августа 2011

Они внутренне работают по-разному, в зависимости от варианта использования, для которого они были разработаны.Например, UIElementCollection не только хранит элементы, но и обеспечивает их добавление и удаление из соответствующего визуального дерева ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...