Ejemplo n.º 1
0
        public void ReplaceRow(int ndxItem, T newItem)
        {
            Debug.Assert(IsConnected);
            Debug.Assert(ndxItem >= 0);
            Debug.Assert(ndxItem < RowCount);
            Debug.Assert(newItem != null);


            lock (m_rwLock)
            {
                T oldItem = GetRow(ndxItem);
                RowReplacing?.Invoke(ndxItem, oldItem);

                int ndx = DoReplace(ndxItem, newItem);
                Header.LastAccessTime = Header.LastWriteTime = DateTime.Now;

                if (ndx != ndxItem)
                {
                    RowDeleted?.Invoke(ndxItem);
                    RowInserted?.Invoke(ndx, newItem);
                }
                else
                {
                    RowReplaced?.Invoke(ndx, newItem);
                }
            }
        }
Ejemplo n.º 2
0
        public void DeleteRow(int ndxItem)
        {
            Debug.Assert(IsConnected);
            Debug.Assert(ndxItem >= 0);
            Debug.Assert(ndxItem < RowCount);

            lock (m_rwLock)
            {
                RowDeleting?.Invoke(ndxItem);
                DoDelete(ndxItem);
                Header.LastWriteTime = Header.LastAccessTime = DateTime.Now;
                RowDeleted?.Invoke(ndxItem);
            }
        }
Ejemplo n.º 3
0
 protected virtual void OnRowDeleted(EventArgs e)
 {
     RowDeleted?.Invoke(this, e);
 }
Ejemplo n.º 4
0
 public void OnRowDeleted(T t)
 {
     State = TableState.Changed;
     RowDeleted?.Invoke(this, new RowEventArgs <T>(t));
 }