예제 #1
0
 public new void Remove(TrackItem <T> trackItem)
 {
     base.Remove(trackItem);
     foreach (var item in this)
     {
         item.Notify();
     }
     Notify();
 }
예제 #2
0
 public void InitCollectionChanged()
 {
     foreach (var item in _originalItems)
     {
         var ti = new TrackItem <T>();
         ti.Initialise(item, this);
         base.Add(ti);
     }
     CollectionChanged += TrackItems_CollectionChanged;
     _init              = true;
     RaiseHasCollectionChanges(null, null);
 }
예제 #3
0
 public void RaiseHasCollectionChanges(TrackItem item, string propertyName)
 {
     if (propertyName != null && Properties?.All(p => p.Name != propertyName) == true)
     {
         return;
     }
     OnPropertyChanged(new PropertyChangedEventArgs(nameof(HasCollectionChanges)));
     if (item != null && propertyName != null)
     {
         ItemPropertyChanged?.Invoke(this, new TrackItemEvent <T> {
             Item = item as TrackItem <T>, PropertyNameChanged = propertyName
         });
     }
     ErrorsChanged?.Invoke(this, new DataErrorsChangedEventArgs(nameof(HasErrors)));
 }
예제 #4
0
        public TrackItem <T> AddItem(T item, int position = 0)
        {
            var ti = new TrackItem <T> {
                Parent = this
            };

            ti.Reset(item);
            InsertItem(position, ti);
            foreach (var trackItem in this)
            {
                trackItem.Notify();
            }
            Notify();
            return(ti);
        }
예제 #5
0
 public new void Add(TrackItem <T> trackItem)
 {
     trackItem.Parent = this;
     base.Add(trackItem);
 }