public override void CancelEdit() { // Remove newly created part links PartLinks.RemoveRange(_newLinks); _newLinks.Clear(); // Add removed again PartLinks.AddRange(_removedLinks); _removedLinks.Clear(); // Cancel on existent PartLinks.ForEach(p => p.CancelEdit()); base.CancelEdit(); }
public override void EndEdit() { // End on part links PartLinks.ForEach(p => p.EndEdit()); // Add new links var newLinks = _newLinks.Select(n => n.PartLink); PartConnector.PartLinks.AddRange(newLinks); _newLinks.Clear(); // Remove removed links from connector PartConnector.PartLinks.RemoveRange(_removedLinks.Select(l => l.PartLink)); _removedLinks.Clear(); base.EndEdit(); }
public override void BeginEdit() { base.BeginEdit(); PartLinks.ForEach(p => p.BeginEdit()); }