public void Remove(MockData data)
        {
            this.mockData.Remove(data);

            IDataSourceChangeEventArgs <MockData> args = this.removeEventFactory == null
                ? new MockDataSourceChangeEventArgs(data, DataSourceChangeEventType.Removed)
                : this.removeEventFactory.Invoke(data);
        }
        public void Add(MockData data)
        {
            this.mockData.Add(data);

            IDataSourceChangeEventArgs <MockData> args = this.addEventFactory == null
                ? new MockDataSourceChangeEventArgs(data, DataSourceChangeEventType.Added)
                : this.addEventFactory.Invoke(data);

            this.OnChange.Invoke(this, args)
        }
        public void Clear()
        {
            foreach (MockData data in this.mockData)
            {
                this.mockData.Remove(data);

                IDataSourceChangeEventArgs <MockData> args = this.removeEventFactory == null
                    ? new MockDataSourceChangeEventArgs(data, DataSourceChangeEventType.Removed)
                    : this.removeEventFactory.Invoke(data);

                this.OnChange.Invoke(this, args);
            }
        }