public void Erase(IVisibleTerm target, int rowIndex) { if (_addingAdhEventDelegate == null || target == null) return; if (rowIndex >= AgentAdherenceEvents.Count) return; if (AgentAdherenceEvents[rowIndex] == null) AgentAdherenceEvents[rowIndex] = new List<AdherenceEvent>(); AgentAdherenceEvents[rowIndex].SaftyInvoke<List<AdherenceEvent>>(list => { if (target.End == MonitoringPoint || list.Any(o => o.IsCoverd(target))) return; var e = _addingAdhEventDelegate(target); e.EmployeeId = BindableAgents[rowIndex].SaftyGetProperty<Guid, IAgent>(o => o.Profile.Id); list.Add(e); this.QuietlyReload(ref _agentAdherenceEvents, "AgentAdherenceEvents"); }); }