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