2016-10-04 37 views
0

我有一個屬性viewmodel Problem.This屬於一個模型,其中有許多屬性,如集合,字符串,圖像。我打開一個窗口使用這個視圖model.I我試圖向用戶顯示一些消息,如果屬性問題(其子屬性)值已經改變。我做了一個標誌_isChanged跟蹤更改,但它仍然是錯誤的。如何檢查一個屬性已經改變或沒有wpf c#

public Problem Problem 
    { 
     get { return _problem; } 
     set 
     { 
      if (value != _problem) 
      { 
       _problem = value; 
       _isChanged=true; 
       OnPropertyChanged("Problem"); 

      } 
     } 
    } 
+0

它在別處被設置爲false嗎?你調試了嗎? –

+0

是的,在默認情況下它是false.On在問題發生變化時變爲真 –

+0

你必須更詳細地描述你的問題,沒有足夠的信息來幫助你。 –

回答

0

下面,我能想到的情況列表:

  • 酒店Problem是從來沒有設置
  • 的新值等於舊值
  • Problem具有自定義operator =
  • _isChanged設置爲false其他地方
  • 設置值上一個對象實例,並檢查_isChanged不同的對象實例的

這些都是外界所發生您共享代碼的所有的東西,或者換句話說,Problem是最有可能不問題。

0

只是因爲類內部的屬性問題發生了變化,並不意味着屬性問題本身會發生變化。 這些屬性,你必須做這樣的事情裏面(比方說文字是你的問題類中的屬性):

public string Text { 

    get { return _text; } 
    set 
    { 
     if (value != _text) 
     { 
      _text = value; 
      Parent.IsChanged = true; 
      OnPropertyChanged("Text"); 
     } 
    } 
} 

父母在哪裏是你的問題對象的引用。

相關問題