public void Undo() { //remove neighbors first foreach (var j in tracker.AddedNeighbor) { wptList.RemoveNeighbor(j); } // Remove all wpts. foreach (var k in tracker.AddedWaypoint) { wptList.RemoveAt(k); } // Clear the tracker tracker = new TrackerItem(); }