Skip to content

ExampleUsage

Simon Cropp edited this page Jul 30, 2012 · 2 revisions

Your code

public class Person : INotifyPropertyChanging
{
    public string GivenName { get; set; }
    public string FamilyName { get; set; }
    public event PropertyChangingEventHandler PropertyChanging;
        
    public string FullName
    {
        get { return GivenName + " " + FamilyName; }
    }
}

What gets compiled

public class Person : INotifyPropertyChanging
{
    private string familyName;
    private string givenName;

    public event PropertyChangingEventHandler PropertyChanging;

    public string FamilyName
    {
        get
        {
            return familyName;
        }
        set
        {
            if (!Object.Equals(familyName, value))
            {
                OnPropertyChanging("FamilyName");
                OnPropertyChanging("FullName");
                familyName = value;
            }
        }
    }

    public string GivenName
    {
        get
        {
            return givenName;
        }
        set
        {
            if (!Object.Equals(givenName, value))
            {
                OnPropertyChanging("GivenName");
                OnPropertyChanging("FullName");
                givenName = value;
            }
        }
    }

    public string FullName
    {
        get
        {
            return GivenName + " " + FamilyName;
        }
    }

    public virtual void OnPropertyChanging(string propertyName)
    {
        var propertyChanging = PropertyChanging;
        if (propertyChanging != null)
        {
            propertyChanging(this, new PropertyChangingEventArgs(propertyName));
        }
    }
}
Clone this wiki locally