//Добавление с заменой или без по уникальному идентификатору public void AddWithID(Item item, bool replaceFlag = false) { if (item.ID == null) { item.ID = ++_idCounter; Add(item); } else { if (Contains(item) && replaceFlag) { this[IndexOfID(item)] = item; } else { //item.ID = ++_idCounter; Add(item); } } OnCollectionChange?.Invoke(); }
public void Clear() { _items.Clear(); OnCollectionChange?.Invoke(_instanceName); }
public void Add(T item) { _items.Add(item); OnCollectionChange?.Invoke(_instanceName); }
public MyObservableCollection(string instanceName, OnCollectionChange onPropertyChange) { _items = new List <T>(); _instanceName = instanceName; OnCollectionChange += onPropertyChange; }
//Метод удаления из списка и дальнейшая сигнализация о изменении в списке public new void Remove(Item item) { base.Remove(item); OnCollectionChange?.Invoke(); }