# Observable

Редактировал(а) Alexandr Fokin 2023/02/24 21:16

ObservableCollection | Выступает в роли обертки над List, предоставляет интерфейс оповещения о событиях изменения коллекции. Важно: по умолчанию уведомляет только об изменения самой коллекции, не учитывая изменения элементов (в случае, если они реализует INotifyPropertyChanged). В таком варианте обновление элемента подразумевает его повторную вставку. При этом, например, привязка в фреймворке WPF умеет в том числе фиксировать изменения свойств элементов. Возможно создание такого расширения, который также будет в нужных местах подписываться/отписываться на изменения элементов и пробрасывать их в свой интерфейс оповещения. |
Демонстрация обновления элемента по индексу.
Элемент без оповещения | var item = Collection1[index]; item.Property1 += "modified"; Collection1.RemoveAt(index); Collection1.Add(item);
Элемент с INotifyPropertyChanged | var item = Collection2[index]; item.Property1 += "modified";
CompositeCollection | Binding multiple ObservableCollections to One ObservableCollection https://stackoverflow.com/questions/13203795/binding-multiple-observablecollections-to-one-observablecollection |
Cysharp/ObservableCollections https://github.com/Cysharp/ObservableCollections | ObservableCollections is a high performance observable collections(ObservableList<T>, ObservableDictionary<TKey, TValue>, ObservableHashSet<T>, ObservableQueue<T>, ObservableStack<T>, ObservableRingBuffer<T>, ObservableFixedSizeRingBuffer<T>) with synchronized views. |

Создал(а) Alexandr Fokin 2023/02/23 14:42

- Комментарии (0)
- Вложения (0)
- История
- Информация

## Приложения