2013-12-13 35 views
0

在我正在處理的應用程序中,有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。我能做些什麼來解決這個問題?

+0

你在ViewModel屬性上實現了'INotifyPropertyChanged'接口嗎? – Sheridan

+0

@Sheridan是的。我已經通過重置userControls datacontext來修復它。 – Sasha

回答

0

好的,我已經解決了。爲此,我將userControl的datacontext更改爲userControl的副本。希望這將有助於未來的某個人。

+0

「用戶控制副本」是什麼意思? –

+0

@RohitVats我的意思是UserControl的副本是在編輯UserControl屬性之前創建的UserControl的一個deepCopy。 – Sasha