public override void SetValue(int i, string value) { if (IsShortened()) { if (i == 0) { Elongate(); } else { i--; } } if (IsShortenable()) { // Check if the next object depends on this ObjectData next = NextData as ObjectData; if (next != null && next.GetObjectType() == GetObjectType()) { next.Elongate(); } } base.SetValue(i, value); }