我正在C#中進行框架理解。我有一個簡單的添加/編輯表單,保存/取消(和退出)按鈕的窗體。該表單有一個網格,並綁定了一個數據表(數據表是表單中的一個字段,用於範圍目的以保留表單的持續時間)。DataTable.RejectChanges()和刷新窗體的文本框控件
此外,窗體上還有3個簡單的文本框控件綁定到DataTable
中的相應列。當我滾動網格時,文本框的細節自動刷新...完美。
我有添加/取消協調工作正常,但沒有編輯/取消。在以下方面失敗。
我開始表格,網格顯示3行(第1列是一個簡單的「描述」)。第一行的值爲Test
(因此在窗體上顯示相應的綁定單個文本框控件)。我點擊編輯按鈕,現在可以更改單個文本框(不是數據網格)並將其更改爲Test changed value
。因此,現在,我要點擊「取消」按鈕,並希望以下內容...網格不會更新新值,並且單個文本框控件會返回其原始值Test
值。
在取消按鈕,我發出了一個MyDataTable.RejectChanges()
,與電網正確保留原始Test
價值,但文本框控件保持Test changed value
內容。當我在添加/取消組合過程中調用相同的RejectChanges()
時,它完全可以正常工作。
爲了在添加/取消過程中模擬一個類似的問題,我明確強制網格到數據表中的最後一個有效行,然後更新文本框......顯然,在調用/重載過程中的某些東西在MyDataGridView.CurrentRow
被觸發了一些我看不到的東西。由於它是一個編輯器,我不會從表中刪除一行(臨時從「添加」),然後拒絕(刪除),並強制通過MyDataGridView.CurrentCell = [0, LastDataRowInDataTable]
更改行。
任何想法都會很棒。
如果您仍然對找到答案感興趣,發佈添加/編輯和保存/取消事件處理程序的源代碼將有助於更清楚地表明您正在嘗試執行的操作。 – 2009-05-07 18:33:06