1

状況:

DataContextがViewModel(VMAと呼ばれる)にバインドされたUserControl(UCAと呼ばれる)があります。UserControl(UCA)には別のUserControl(UCBと呼ばれます)がネストされており、VMBと呼ばれるUCBのViewModelがあります。

親ViewModel(VMA)には、UCBのDataContextがVMBに設定された状態でVMBをインスタンス化するプロパティがあります。

コントロールの値(TextBox)がVMBにバインドされているUCBで変更されると、通知(OnPropertyChanged)が送信されます。ここで、VMBを変更して、「親」VMAに通知し、親VMAがUCAでいくつかの作業を実行してコントロールを更新できるようにする必要があります。

だから私はViewModel側にいて、VMB OnPropertyChangedメソッドで、このデータ変更をVMAにバブルする方法を見つけようとしています。助言がありますか?ヒント?

ありがとう、ロブ。

4

1 に答える 1

0

VMAはVMBを所有していますか?イベントをVMAに登録する

public VMA()            
{
    VMB.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(PropertyChanged);
}

void PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
    if (e.PropertyName == "MyProperty")
    {
        //TODO: Stuff
    }
}

これは、VMBがINotifyProeprtyChangedを実装している場合に機能します。

于 2012-11-02T21:33:30.693 に答える