protected override void OnRemoved(int index, TSource value) { var currentValue = _values[index]; _values.RemoveAt(index); if (currentValue) --Value; }