Beispiel #1
0
        public void RemoveRange(List <object> items)
        {
            CollectionChanged -= ThisCollectionChanged;

            foreach (T item in items)
            {
                Remove(item);
                item.PropertyChanged -= ItemPropertyChanged;
                DetachAnyCollectionChangedToDetailsItem(item);
                RemoveItems.Add(item);
            }
            CollectionChanged += ThisCollectionChanged;
            OnAnyCollectionChanged();
        }
Beispiel #2
0
 private void ThisCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     if (e.Action == NotifyCollectionChangedAction.Add && e.NewItems != null)
     {
         foreach (T newItem in e.NewItems)
         {
             newItem.PropertyChanged += ItemPropertyChanged;
             AttachAnyCollectionChangedToDetailsItem(newItem);
             AddItems.Add(newItem);
         }
     }
     else if (e.Action == NotifyCollectionChangedAction.Remove && e.OldItems != null)
     {
         foreach (T oldItem in e.OldItems)
         {
             oldItem.PropertyChanged -= ItemPropertyChanged;
             DetachAnyCollectionChangedToDetailsItem(oldItem);
             RemoveItems.Add(oldItem);
         }
     }
     OnAnyCollectionChanged();
 }