using System; namespace OpenTap.Plugins.BasicSteps { /// A list that invokes a callback when it has been changed. This is useful to handle GUIs changing the list. /// class NotifyChangedList : VirtualCollection { public Action> ChangedCallback = list => { }; public override void Insert(int index, T item) { base.Insert(index, item); ChangedCallback(this); } public override void Clear() { base.Clear(); ChangedCallback(this); } public override void Add(T item) { base.Add(item); ChangedCallback(this); } public override bool Remove(T item) { var r= base.Remove(item); ChangedCallback(this); return r; } public override void RemoveAt(int index) { base.RemoveAt(index); ChangedCallback(this); } } }