void OnDatumReplaced(int xsDatum, IDatum datum) { bool wasIncluded = m_mapper.Accepted(xsDatum); if (wasIncluded) { int xdItem = m_mapper.FromSourceIndex(xsDatum); m_mapper.OnSourceItemReplaced(xsDatum, datum); if (m_mapper.Filter(datum)) { DatumReplaced?.Invoke(xdItem, datum); } else { DatumDeleted?.Invoke(xdItem); } } else { m_mapper.OnSourceItemReplaced(xsDatum, datum); if (m_mapper.Filter(datum)) { int xdItem = m_mapper.FromSourceIndex(xsDatum); DatumInserted?.Invoke(xdItem, datum); } } }
private void Source_DatumReplacing(int srcIndex, IDatum datum) { using (Lock()) if (m_mapper.IsSelected(srcIndex)) { int ndx = m_mapper.FromSourceIndex(srcIndex); if (m_mapper.Filter(datum)) { DatumReplacing?.Invoke(ndx, datum); } else { DatumDeleting?.Invoke(ndx); } } }