2012-01-16 24 views
0

我有一個.NET 2.0 Winforms應用程序(和Subsonic 2.2),其中我有一個DataGridView和麪板中的幾個控件,都綁定到其數據源是一個Subsonic ActiveRecord集合的BindingSource。當用戶在網格中選擇一行時,在相應的控件(texbox,combo,datetimepicker等)中將顯示相應的詳細信息。接受/取消更改Subsonic 2.2

當用戶更改某些數據並嘗試移動到其他行時,我希望應用程序顯示數據已更改並需要保存的警告。如果用戶選擇是,則數據應該保留。

我遇到的幾個問題:

一)在DGV.RowEnter事件處理程序,我試圖找到如果當前行是髒(使用ActiveRecord的IsDirty)。如果是這樣,我會顯示一個消息框。

b)當我保存並重新綁定網格時,datagridview的數據源無法重新綁定到新的(已保存)集合。該應用程序拋出「操作無效」的錯誤。因爲gridview和控件都綁定到相同的集合,所以無論何時我改變控件中的內容,它都會反映在網格中,但是當用戶選擇「否」保存數據時,應該撤消這些更改。亞音速是否有像數據集一樣的接受/取消變化?

謝謝!

回答

0

我終於想通了:

一)雖然我能夠保存數據沒有任何問題,應用程序會拋出錯誤只有當我嘗試「重新綁定」了。由於網格和控件已綁定到包含最新更改的數據源,因此我刪除了重新綁定代碼,現在不再引發任何錯誤(「操作無效」)b)撤銷更改 - 這是通過調用BindingSource .CancelEdit()當用戶不想保存更改時。