Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
                    }
                }
        }