ObservableCollection: универсальный инструмент для управления коллекциями в C#
ObservableCollection - это класс из пространства имен System.Collections.ObjectModel, который представляет коллекцию, которую можно использовать для отслеживания изменений данных.
ObservableCollection обеспечивает механизм уведомлений о изменениях в коллекции. Когда элементы добавляются, удаляются или изменяются в ObservableCollection, генерируются специальные события, что позволяет связанным элементам пользовательского интерфейса автоматически обновляться, отражая изменения.
Пример использования ObservableCollection:
csharp
using System;
using System.Collections.ObjectModel;
class Program
{
static void Main()
{
ObservableCollection fruits = new ObservableCollection();
fruits.CollectionChanged += (sender, e) =>
{
if (e.NewItems != null)
{
foreach (var newItem in e.NewItems)
{
Console.WriteLine($"Added: {newItem}");
}
}
if (e.OldItems != null)
{
foreach (var oldItem in e.OldItems)
{
Console.WriteLine($"Removed: {oldItem}");
}
}
};
fruits.Add("Apple");
fruits.Add("Orange");
fruits.Remove("Apple");
}
}
В данном примере мы создаем экземпляр ObservableCollection с типом элементов string. Затем мы регистрируем обработчик события CollectionChanged, который будет вызываться при добавлении или удалении элементов из коллекции.
Затем мы добавляем элементы "Apple" и "Orange" в коллекцию с помощью метода Add(). Обработчик события CollectionChanged будет вызываться дважды, с указанием добавленных элементов.
Затем мы удаляем элемент "Apple" из коллекции с помощью метода Remove(). Теперь обработчик события CollectionChanged будет вызван с указанием удаленного элемента.
Оба раза обработчик события выводит информацию о добавленных или удаленных элементах на консоль.
Таким образом, использование ObservableCollection позволяет автоматически обновлять связанные элементы пользовательского интерфейса при изменении данных в коллекции.