예제 #1
0
 public void AcceptChanges()
 {
     AddItems.Clear();
     RemoveItems.Clear();
     changedItems.Clear();
     AcceptChangesDetail();
 }
예제 #2
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();
        }
예제 #3
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();
 }
예제 #4
0
 public new void Clear()
 {
     RemoveItems.AddRange(Items);
     base.Clear();
 }