我有一個WPF窗口上的數據網格,它顯示我的用戶列表。這個代碼可以正常工作。實體不提供WPF數據網格中的最新信息C#
private void UpdateGrid()
{
var query = db.Users;
GridUsers.ItemsSource = query.ToArray();
}
有一個編輯按鈕,它在上一個窗口頂部打開一個新窗口,並允許您編輯其中一個用戶。當我完成編輯時,會有一個調用db.savechanges的保存。這一切工作正常,如果我把一個斷點那裏的變化發生在我的SQL數據庫。然後關閉此窗口,並在用戶屏幕上再次調用UpdateGrid方法。 datagrid不會更新以顯示SQL表中的新值。我還有另一個按鈕,用於添加和刪除用戶,並且在執行完這些任務之一後調用UpdateGrid方法時,數據網格是最新的。
爲什麼這不會正確更新我的datagrid?
更新: 我修復了這個問題。我仍然不確定它爲什麼會發生。我的用戶屏幕有一個從空開始的全局用戶變量。以下代碼在按下編輯按鈕時進行設置。
WorkingUser = (User) GridUsers.SelectedItem;
編輯屏幕,然後用下面的代碼,以獲得正確的實體。
User editUser = (from s in db.Users where (s.UserName == ManageUsers.WorkingUser.UserName) select s).FirstOrDefault();
當db.users.remove(editUser)被調用,然後db.savechanges被調用,數據網格更新工作正常。但是,當我編輯editUser並調用db.savechanges時,dataGrid無法正確顯示。我意識到我不必做選擇,而只是使用下面的代碼。
User editUser = ManageUsers.WorkingUser
現在,當我編輯editUser時,updateGrid工作正常。