this.DeletedPersonRow = dts.Tables[0].Rows[pi];
just stores a reference to the row in the DataTable. When the row is deleted its ItemArray is no longer accessible. Try cloning the DataRow:>this.DeletedPersonRow = dts.Tables[0].NewRow(); >this.DeletedPersonRow.ItemArray = dts.Tables[pi].ItemArray;>