2017-07-16 58 views
1

在我的應用程序中,我管理人員信息,我有一個listBox顯示人員列表和三個按鈕添加/編輯/刪除,當我選擇行並按編輯按鈕時,應用程序打開一個新窗口個人信息並保存到某個數據庫表(ModifyCheck)中,如果其他用戶試圖編輯它,則此人正在修改它。在這個人窗口中,我有兩個按鈕(保存/取消)。這個窗口中的所有控件都與對象屬性綁定,當我進行一些修改並按下保存時,我應該從(ModifyCheck)中刪除該行。保存WPF中的一個對象的更改

的問題是:

如果我打開窗戶的人並修改了一些資料,然後按取消,我會用SaveChange更新ModifyCheck表。在這種情況下,我修改的所有信息都會更新,但我按下了取消。

如何僅將SaveChanges()用於ModifyCheck?

回答

0

不要將實體屬性直接綁定到控件。創建一個具有相同屬性的視圖模型,將它們綁定到控件。當用戶進行一些更改時,它將修改viewModel的屬性,而不是您的實體。如果用戶按下保存按鈕,則必須更新實體的字段。如果用戶按下取消,實體將不會發生任何事情。

爲簡單起見,假設您有一個WinForms應用程序。每個TextBox控件都有一個名稱。當用戶按下保存按鈕,你將指派它的價值實體:

person.FirstName = textBoxFirstName.Text; 
db.SaveChanges(); 

否則將關閉該窗口並沒有什麼會改變person

+0

感謝您的回答,能不能請您指導我如何使用視圖模型詳細? –

+0

如果您不知道MVVM模式以及它在WPF中的用法,則不能只使用ViewModel。這裏是相關話題,MVVP教程:https://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – opewix

+0

@AbdulsalamElsharif MVVM可能過於複雜的話題在這裏。你只需要理解一件事,在用戶按下Save按鈕之前不要修改實體字段。 – opewix

相關問題