2

I have two classes. How can I raise a Property Changed when property of another class is changed? How can I raise property change in the second class if property ActualReading is changed?

Class 1

  public class actualmeterreading : INotifyPropertyChanged
{
    private string _ID;

    private Int32 _ActualReading;

    public actualmeterreading()
    {
        this._ID = string.Empty;

        this._ActualReading = 0;
    }

    public string ID
    {
        get
        {
            return _ID;
        }

        set
        {
            _ID = value;
        }
    }


    public int ActualReading
    {
        get
        {
            return _ActualReading;
        }

        set
        {
            _ActualReading = value;
            RaisePropertyChanged("ActualReading");

        }
    }



    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(String Name)
    {
        if (PropertyChanged != null)
            this.PropertyChanged(this, new PropertyChangedEventArgs(Name));
    }


}

class 2

public class meterreadingrecords : INotifyPropertyChanged
{
    private string _id;

    private actualmeterreading _actualmeterreading;

    public meterreadingrecords()
    {
        this._id = string.Empty;

        this._actualmeterreading = new actualmeterreading();


    }



    public string Id
    {
        get
        {
            return _id;
        }

        set
        {
            _id = value;
        }
    }



    public actualmeterreading Actualmeterreading
    {
        get
        {
            return _actualmeterreading;
        }

        set
        {

            _actualmeterreading = value;

        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(String Name)
    {
        if (PropertyChanged != null)
            this.PropertyChanged(this, new PropertyChangedEventArgs(Name));
    }
}
batwing
  • 257
  • 1
  • 8
  • 22

1 Answers1

2

You can chain the events. For that you need to register the event in the second class, and in the event method you would fire the RaisePropertyChanged of the second class

public meterreadingrecords()
{
    this._id = string.Empty;

    this._actualmeterreading = new actualmeterreading();

    this._actualmeterreading.PropertyChanged += _actualmeterreading_PropertyChanged


}

private void _actualmeterreading_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    RaisePropertyChanged("_actualmeterreading");
}
Mong Zhu
  • 23,309
  • 10
  • 44
  • 76