2016-07-18 10 views
1

ここに私が必要とする簡単な例があります:
私はプロパティ名を持つクラスAを持っています。 Nameプロパティは非同期に変更され、変更がいつ発生するかを知る方法がありません。
ビューの更新された値を表示するために、私はpropertychangedイベントを結んで{Binding A.Name}と結びつけました。 VMではうまく動作します。
しかし、私の場合、私はクラスAに上げて一度propertychangedを考えているクラスAにすべきではないカスタムプロパティがたくさんある、AViewModelNameプロパティが通知され、OnPropertyChangedあまりにOnPropertyChangedが発生したときに検出します

を上げる取得する必要があります

そうする方法はありますか?

のC#:

public class A : BaseViewModel 
{ 
    string name; 
    public string Name 
    { 
     get { return name; } 
     set { Set(()=> Name, ref name, value); } 
    } 
} 

public class AViewModel : BaseViewModel 
{ 
    A a; 
    public A A 
    { 
     get { return a; } 
     set { Set(()=> A, ref a, value); } 
    } 
    public string Name 
    { 
     get { return A.Name; } 
     set { Set(()=> Name, ref A.Name, value); } 
    } 
} 

XAML:

<TextBox Text="{Binding Name}" /> 
+2

を、あなたの名前の上にセッターに「RaisePropertyChanged」を試してみましたプロパティ、次に 'UpdateSourceTrigger = PropertyChanged'、テキストボックスのバインド後? – tCoe

答えて

1

クラスA AViewModelがそれを購読することができますので、例えば古典的なC#のイベントを、持っている必要があります。

2

は、名前のオブジェクトに「RaisePropertyChanged」を追加しよう:

string name; 
    public string Name 
    { 
     get { return name; } 
     set { Set(()=> Name, ref name, value); RaisePropertyChanged();} 
    } 

が続いてXAMLの更新トリガーが含ま:

<TextBox Text="{Binding Name}" UpdateSourceTrigger=PropertyChanged /> 
関連する問題