Skip to content

On_PropertyName_Changed

Zhaph edited this page Jul 29, 2012 · 7 revisions

#summary On_PropertyName_Changed.

Introduction

Allows having a "similar named" method called when a property is set

Details

Your code

public class Person : INotifyPropertyChanged
{
  public event PropertyChangedEventHandler PropertyChanged;

  public string Name { get; set; }

  public void OnNameChanged()
  {
    Debug.WriteLine("Name Changed");
  }
}

What gets compile

Note the call to OnNameChanged injected in the set of the property.

public class Person : INotifyPropertyChanged
{
  public event PropertyChangedEventHandler PropertyChanged;

  string name;

  public string Name
  {
    get { return name; }
    set
    {
      if (value != name)
      {
        name = value;
        OnNameChanged();
        OnPropertyChanged("Name");
      }
    }
  }

  public void OnNameChanged()
  {
    Debug.WriteLine("Name Changed");
  }

  public virtual void OnPropertyChanged(string propertyName)
  {
    var propertyChanged = PropertyChanged;
    if (propertyChanged != null)
    {
      propertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
  }
}
Clone this wiki locally