在我的應用程序中,我有一組數據對象,它們定義應用程序在執行時收集的數據類型。使用C撤消綁定對象中的更改#
用戶可以打開一個對話框窗口來編輯這些對象,並且該對話框窗口包含綁定到集合的DataGridView實例。這意味着用戶所做的任何更改都會立即應用,這並不好。
另一個問題是,此對話框窗口有一個取消按鈕,允許用戶放棄自打開窗口後所做的所有更改。
當前窗口打開時,我序列化所有的對象(淺拷貝將不起作用),如果用戶點擊取消,然後我反序列化它們以恢復它們。我遇到的問題是這很混亂。它會更改所有引用,並且這些對象中的一些還會存儲數據歷史記錄,而這些歷史記錄不是序列化的。然後我必須讓應用程序通過事件來通知對象以更新他們的引用等,這是一種痛苦。
有沒有更好的方法來解決這個問題?
DataTable提供編輯緩衝。如果您可以計算出如何用對象集合填充DataTable,那麼只需將網格綁定到DataTable,並且如果用戶取消,則不要在表上調用AcceptChanges()。 –