Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        public void Clear()
        {
            NotifyChangedEventArgs <T> eventArgs = new NotifyChangedEventArgs <T>(NotifyCollectionChangedAction.Reset);

            BeforeCollectionChanged?.Invoke(this, eventArgs);
            InnerList.Clear();
            CollectionChanged?.Invoke(this, eventArgs);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
     }
 }
Exemple #12
0
 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);
                    }
                }
            }
        }
Exemple #14
0
        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);
                }
            }
        }