我有一個命令類(希望)使用DataGridViewRow作爲成員以執行和撤消。當我嘗試將傳入的dgvr分配給構造函數中的成員行時(例如_row = r;),它顯示我得到一個引用,而不是新副本,從而使撤消操作變得不可能(原始dgvr被刪除然後成員行變空)。按值複製DataGridViewRow?
我還試圖通過MSDN上的「複製」行如下:
public DataGridViewRow CloneWithValues(DataGridViewRow row)
{
DataGridViewRow clonedRow = (DataGridViewRow)row.Clone();
for (Int32 index = 0; index < row.Cells.Count; index++)
{
clonedRow.Cells[index].Value = row.Cells[index].Value;
}
return clonedRow;
}
然而,這似乎是離開背後的架構,我可以不上名字訪問字段(例如_row.Cells [「critical」]。Value)。
如何通過DataGridViewRow的值進行復制?
難道你沒有在DataGridView級別的架構?如果您打算在不同的DataGridView對象中使用克隆的行,那麼當您將它作爲原始DataGridView對象的克隆副本時,我感覺DataGridView對象將擁有該模式。 – Arun
我已經發現了一個令人討厭的解決方法:只是讓該行不可見,而不是在完成udpate後刪除它。這會在需要撤消的情況下保留數據。 – Handprint