2016-10-04 33 views
0

viewmodelにプロパティがあります。これは、コレクション、文字列、画像などのプロパティが多数あるモデルに属します。このビューモデルを使用してウィンドウを開きます.IプロパティProblem(その子プロパティ)の値が変更されている場合、ユーザーにメッセージを表示しようとしています。フラグを作成しました_isChanged変更を追跡するのにfalseが残ります。私は考えることができる状況のリストの下プロパティが変更されたかどうかを確認する方法wpf c#

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

      } 
     } 
    } 
+0

他のどこかでfalseに設定されていますか?デバッグしましたか? –

+0

はいデフォルトではfalseです。問題が変更されたときに真となる –

+0

問題をより詳細に記述する必要があります。ここで役立つ情報が不足しています。 –

答えて

0

  • プロパティProblemことはありません新しい値が古い値
  • Problemは、カスタムoperator =
  • を持っている等しい
  • を設定
  • _isChangedは、false他の場所に設定されます。
  • あなたは、これらを使用すると、共有コードの外側で起こるすべてのものであるか、あるいは他の言葉で、Problemが最も可能性が高いではない一つのオブジェクトのインスタンス上値を設定し、異なるオブジェクトインスタンスの_isChanged

を検査します問題。

0

クラスの問題のプロパティが変更されたという理由だけで、プロパティの問題自体が変更されるわけではありません。あなたはこのような何かをしなければならないこれらのプロパティ内 (のはテキストがあなたの問題のクラス内のプロパティであるとしましょう):

親があなたの問題のオブジェクトへの参照です
public string Text { 

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

関連する問題