public override void RemoveAt(int index) { var e = new EventListIndexedArgs <T>() { Item = this[index], Index = index }; base.RemoveAt(index); OnRemoved(e); OnChanged(); }
public override void Insert(int index, T item) { base.Insert(index, item); var e = new EventListIndexedArgs <T>() { Item = item, Index = index }; OnAdded(e); OnChanged(); }
public override void Add(T item) { base.Add(item); var e = new EventListIndexedArgs <T>() { Item = item, Index = base.Count - 1 }; OnAdded(e); OnChanged(); }
public override void Clear() { for (var i = 0; i < Count; i++) { var e = new EventListIndexedArgs <T>() { Item = this[i], Index = i }; OnRemoved(e); } OnChanged(); base.Clear(); }
public override T this[int index] { get => base[index]; set { var old = base[index]; var pre = new EventListIndexedArgs <T>() { Item = old, Index = index }; var post = new EventListIndexedArgs <T>() { Item = value, Index = index }; base[index] = value; OnRemoved(pre); OnAdded(post); OnChanged(); } }
protected virtual void OnRemoved(EventListIndexedArgs <T> e) { Removed?.Invoke(this, e); }