public new void Remove(TrackItem <T> trackItem) { base.Remove(trackItem); foreach (var item in this) { item.Notify(); } Notify(); }
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); }
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))); }
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); }
public new void Add(TrackItem <T> trackItem) { trackItem.Parent = this; base.Add(trackItem); }