public void Add(KeyValuePair <TKey, TValue> item) { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Add, item); BeforeCollectionChanged?.Invoke(this, eventArgs); ((IDictionary <TKey, TValue>)InnerDictionary).Add(item); CollectionChanged?.Invoke(this, eventArgs); }
public void Clear() { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Reset); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerDictionary.Clear(); CollectionChanged?.Invoke(this, eventArgs); }
public void Insert(int index, T item) { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Add, item, index); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerList.Insert(index, item); CollectionChanged?.Invoke(this, eventArgs); }
public void Add(TKey key, TValue value) { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Add, new KeyValuePair <TKey, TValue>(key, value)); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerDictionary.Add(key, value); CollectionChanged?.Invoke(this, eventArgs); }
public void Clear() { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Reset); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerList.Clear(); CollectionChanged?.Invoke(this, eventArgs); }
public void Add(T item) { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Add, item); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerList.Add(item); CollectionChanged?.Invoke(this, eventArgs); }
public void RemoveAt(int index) { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Remove, InnerList[index], index); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerList.RemoveAt(index); CollectionChanged?.Invoke(this, eventArgs); }
public bool Remove(TKey key) { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Remove, new KeyValuePair <TKey, TValue>(key, InnerDictionary[key])); BeforeCollectionChanged?.Invoke(this, eventArgs); bool result = InnerDictionary.Remove(key); CollectionChanged?.Invoke(this, eventArgs); return(result); }
public bool Remove(KeyValuePair <TKey, TValue> item) { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Remove, item); BeforeCollectionChanged?.Invoke(this, eventArgs); bool result = ((IDictionary <TKey, TValue>)InnerDictionary).Remove(item); CollectionChanged?.Invoke(this, eventArgs); return(result); }
public bool Remove(T item) { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Remove, item); BeforeCollectionChanged?.Invoke(this, eventArgs); bool result = InnerList.Remove(item); CollectionChanged?.Invoke(this, eventArgs); return(result); }
public void Add(CollectionItem <T> item) { if (!Contains(item)) // if Item is already in the list, don't add it again { NotifyChangedEventArgs <CollectionItem <T>?> eventArgs = new NotifyChangedEventArgs <CollectionItem <T>?>(NotifyCollectionChangedAction.Add, item); BeforeCollectionChanged?.Invoke(this, eventArgs); AddIndex(item.Item, InnerList.Count); InnerList.Add(item); Count++; CollectionChanged?.Invoke(this, eventArgs); } }
public TValue this[TKey key] { get { return(InnerDictionary[key]); } set { NotifyChangedEventArgs <KeyValuePair <TKey, TValue> > eventArgs = new NotifyChangedEventArgs <KeyValuePair <TKey, TValue> >(NotifyCollectionChangedAction.Replace, new KeyValuePair <TKey, TValue>(key, value), new KeyValuePair <TKey, TValue>(key, InnerDictionary[key])); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerDictionary[key] = value; CollectionChanged?.Invoke(this, eventArgs); } }
public CollectionItem <T>?this[int index] { get { return(InnerList[index]); } set { CollectionItem <T>?oldValue = InnerList[index]; CollectionItem <T>?newValue = value; if (oldValue is null && newValue is null) { return; } if (oldValue is null || newValue is null || !oldValue.Equals(newValue)) { if (!Contains(newValue !)) { NotifyChangedEventArgs <CollectionItem <T>?> eventArgs = new NotifyChangedEventArgs <CollectionItem <T>?>(NotifyCollectionChangedAction.Replace, newValue, oldValue, index); BeforeCollectionChanged?.Invoke(this, eventArgs); if (oldValue is not null) { RemoveAt(oldValue, index); } InnerList[index] = newValue; if (newValue is not null) { AddIndex(newValue.Item, index); } CollectionChanged?.Invoke(this, eventArgs); } } } }
public T this[int index] { get { return(InnerList[index]); } set { T item = InnerList[index]; if (item is null && value is null) { return; } if (item is null || value is null || !item.Equals(value)) { NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Replace, value, InnerList[index], index); BeforeCollectionChanged?.Invoke(this, eventArgs); InnerList[index] = value; CollectionChanged?.Invoke(this, eventArgs); } } }