1

情况:

我有一个 UserControl(称之为 UCA),它的 DataContext 绑定到一个 ViewModel(称之为 VMA)。UserControl (UCA) 有另一个 UserControl(称为 UCB)嵌套在其中,我有一个用于 UCB 的 ViewModel,称为 VMB。

父 ViewModel (VMA) 有一个属性来实例化 VMB,并将 UCB 的 DataContext 设置为 VMB。

当绑定到 VMB 的 UCB 中的控件值 (TextBox) 发生更改时,它会收到通知 (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 回答