Описание тега observablecollection
ObservableCollection - это реализация паттерна наблюдателя, специально предназначенная для уведомления об изменении содержимого коллекции элементов. Он реализуетINotifyCollectionChanged
интерфейс, который определяет CollectionChanged
свойство события.
Слушатели могут подписаться на CollectionChanged
событие, чтобы получать уведомления, когда элементы добавляются, удаляются, заменяются, перемещаются или переупорядочиваются в коллекции или когда все содержимое коллекции заменяется.
ObservableCollection
также реализует INotifyPropertyChanged
и это PropertyChanged
событие, но это событие запускается только при изменении свойств объекта коллекции, а не при изменении свойств элементов в коллекции. Если вы хотите получать уведомления об изменении какого-либо свойства любого элемента в коллекции, вам необходимо подключитьPropertyChanged
событие каждого элемента, вставленного в коллекцию. Это можно сделать вCollectionChanged
обработчик события.
Примечания по использованию XAML
ObservableCollection<T>
может использоваться как XAML
элемент объекта в Windows Presentation Foundation (WPF) в версиях 3.0 и 3.5. Однако использование имеет существенные ограничения.
ObservableCollection<T>
должен быть корневым элементом, потому что x:TypeArguments
атрибут, который должен использоваться для указания ограниченного типа универсальногоObservableCollection<T>
поддерживается только в элементе объекта для корневого элемента.
Вы должны объявить атрибут x:Class (что влечет за собой, что действие сборки для этого файла XAML должно быть Page или каким-либо другим действием сборки, которое компилирует XAML).ObservableCollection<T>
находится в пространстве имен и сборке, которые изначально не сопоставлены с пространством имен XML по умолчанию. Вы должны сопоставить префикс для пространства имен и сборки, а затем использовать этот префикс в теге элемента объекта дляObservableCollection<T>
.
Более простой способ использования ObservableCollection<T>
возможности XAML в приложении - объявить собственный неуниверсальный настраиваемый класс коллекции, производный от ObservableCollection<T>
, и ограничивает его определенным типом. Затем сопоставьте сборку, содержащую этот класс, и укажите на нее ссылку как на элемент объекта в своем XAML.