public override void UpdateVisual() { CoordinateSystem coordinateSystem = Drawing.CoordinateSystem; var xPoints = coordinateSystem.GetVisibleXPoints(); var yPoints = coordinateSystem.GetVisibleYPoints(); int count = xPoints.Count() + yPoints.Count(); if (Lines.Count < count) { AddNewLines(count - Lines.Count, coordinateSystem); } else if (Lines.Count > count) { RemoveExcessLines(Lines.Count - count, coordinateSystem); } int i = 0; foreach (var x in xPoints) { MoveLineX(Lines[i++], x, coordinateSystem); } foreach (var y in yPoints) { MoveLineY(Lines[i++], y, coordinateSystem); } }