diff --git a/Entities/ObservableList.cs b/Entities/ObservableList.cs index 45d5b90..27d9b04 100644 --- a/Entities/ObservableList.cs +++ b/Entities/ObservableList.cs @@ -16,21 +16,8 @@ public class ObservableList : IList public void Add(T item) { - _ = Task.Run(() => - { - this.ItemsChanged?.Invoke(null, new ObservableListUpdate - { - List = this, - NewItems = new List() { item }, - RemovedItems = null - }); - }); - _items.Add(item); - } - public void Insert(int index, T item) - { _ = Task.Run(() => { this.ItemsChanged?.Invoke(null, new ObservableListUpdate @@ -40,12 +27,27 @@ public class ObservableList : IList RemovedItems = null }); }); + } + public void Insert(int index, T item) + { _items.Insert(index, item); + + _ = Task.Run(() => + { + this.ItemsChanged?.Invoke(null, new ObservableListUpdate + { + List = this, + NewItems = new List() { item }, + RemovedItems = null + }); + }); } public void Clear() { + _items.Clear(); + _ = Task.Run(() => { this.ItemsChanged?.Invoke(null, new ObservableListUpdate @@ -55,27 +57,29 @@ public class ObservableList : IList RemovedItems = _items.ToList() }); }); - - _items.Clear(); } public void RemoveAt(int index) { - _ = Task.Run(() => + ObservableListUpdate e = new ObservableListUpdate { - this.ItemsChanged?.Invoke(null, new ObservableListUpdate - { - List = this, - NewItems = null, - RemovedItems = new List() { _items.ElementAt(index) } - }); - }); + List = this, + NewItems = null, + RemovedItems = new List() { _items.ElementAt(index) } + }; _items.RemoveAt(index); + + _ = Task.Run(() => + { + this.ItemsChanged?.Invoke(null, e); + }); } public bool Remove(T item) { + var v = _items.Remove(item); + _ = Task.Run(() => { this.ItemsChanged?.Invoke(null, new ObservableListUpdate @@ -86,7 +90,7 @@ public class ObservableList : IList }); }); - return _items.Remove(item); + return v; } public bool Contains(T item)