chr
2026-04-05 fe750b791d5b517cc4e9bc8e99a9a75139a0cfba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
 
namespace OpenTap.Plugins.BasicSteps
{
    /// <summary>  A list that invokes a callback when it has been changed. This is useful to handle GUIs changing the list. </summary>
    /// <typeparam name="T"></typeparam>
    class NotifyChangedList<T> : VirtualCollection<T>
    {
        public Action<NotifyChangedList<T>> 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);
        }
    }
}