Описание тега observablecollection

ObservableCollection - это класс коллекции.NET, который отправляет уведомления о событиях, когда элементы добавляются, удаляются, заменяются, перемещаются или переупорядочиваются в коллекции, или когда заменяется все содержимое коллекции.

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.