private void Source_DatumReplaced(int srcIndex, IDatum datum) { using (Lock()) { bool wasIncluded = m_mapper.IsSelected(srcIndex); if (wasIncluded) { int ndx = m_mapper.FromSourceIndex(srcIndex); m_mapper.OnSourceItemReplaced(srcIndex, datum); if (m_mapper.Filter(datum)) { DatumReplaced?.Invoke(ndx, datum); } else { DatumDeleted?.Invoke(ndx); } } else { m_mapper.OnSourceItemReplaced(srcIndex, datum); if (m_mapper.Filter(datum)) { int ndx = m_mapper.FromSourceIndex(srcIndex); DatumInserted?.Invoke(ndx, datum); } } } }
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); } } }