内部对象属性更改时自动提升PropertyChanged

Job*_*Joy 7 c# wpf mvvm inotifypropertychanged

我有这样的场景

Class Parent 
{
    Property  A;
 }

 Class A 
 {
      Property X
 }
Run Code Online (Sandbox Code Playgroud)

PropertyChangedNotification当X发生变化时,如何获得属性A. 我不想在A级或任何破坏我脱钩的事件中引用"父母".我基本上想要的是制作Parent.IsDirty==true.这是我的故事的一个非常简化的版本,我有几十个像Parent这样的类,所以我正在寻找一些通用的方法来处理这个问题.

请注意,这不是实际代码.我得到了所有的INotifyPropertyChanged实施.我只是想知道任何简单的机制RaisePropertyChanged("A.X")

Roe*_*elF 8

您可以尝试在父类中注册propertychanged事件.在构造函数中,您可以获取该事件:

public Parent()
{
    A.OnPropertyChanged += OnAPropertyChanged;
}

void OnAPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "X")
        if(PropertyChanged != null)
             PropertyChanged(this, new PropertyChangedEventArgs("A"))
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...