在我正在處理的應用程序中,有userControls和一個propertyGrid來顯示一些屬性。當屬性被加載,我改變它們在propertyGrid中的值時,我可以看到userControl也在更新。有一項功能可以撤消更改。爲此,當用戶選擇編輯userControl時,我創建了一個userCopy的deepCopy並繼續處理原始對象。當用戶選擇撤消的變化,我設置的副本我原來的對象:不綁定屬性從propertyGrid到customUserControl
var control = temp.ViewModel.AllControls.FirstOrDefault(x => x.ViewModel.IsSelected); //finds selected userControl
if (control == null) return;
var t = (ISelectableViewModel)_copySelectedObject;
control.ViewModel = t; // set old values to userControl
SelectedObject = control.ViewModel; // load properties in propertyGrid
的問題是,我的用戶不會更新與撤銷按鈕被點擊後的新值,(只有當我在代碼編寫control.ViewModel .Name = t.Name等)。另外我還有一個PropertyGrid的問題。它加載正確的值,但是當我更改屬性時,它不會影響到我的userControl。我能做些什麼來解決這個問題?
你在ViewModel屬性上實現了'INotifyPropertyChanged'接口嗎? – Sheridan
@Sheridan是的。我已經通過重置userControls datacontext來修復它。 – Sasha