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); } } }
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); } }
protected virtual void OnRowDeleted(EventArgs e) { RowDeleted?.Invoke(this, e); }
public void OnRowDeleted(T t) { State = TableState.Changed; RowDeleted?.Invoke(this, new RowEventArgs <T>(t)); }