我对MVVM设计模式不熟悉。所以从URL http://www.geekchamp.com/articles/windows-phone-mango-getting-started-with-mvvm-in-10-minutes上阅读文章

这是MVVM设计模式的一小段代码

public class Person : INotifyPropertyChanged
{
    private string name;
    private int age;

    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            if (this.name != value)
            {
                this.name = value;
                this.RaisePropertyChanged("Name");
            }
        }
    }

    public int Age
    {
        get
        {
            return this.age;
        }
        set
        {
            if (this.age != value)
            {
                this.age = value;
                this.RaisePropertyChanged("Age");
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = this.PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

1)我想知道PropertyChangedEventHandler的用途是什么?
它能做什么?

2)我想知道this.RaisePropertyChanged("Age");在做什么?

请以简单的方式进行解释,以便我了解其用法和重要性。

谢谢

最佳答案

1)PropertyChangedEventHandler的用途是什么?它能做什么?

PropertyChangedEventHandler“表示将处理在组件上更改属性时引发的PropertyChanged事件的方法。”该行代码声明一个名为PropertyChanged的事件。属性更改后,其他对象可以订阅该事件以得到通知。

2)这是什么。RaisePropertyChanged(“Age”);是在做 ?

this.RaisePropertyChanged(“Age”)是对RaisePropertyChanged方法的调用,该方法依次验证事件是否有订阅者(处理程序!= null),如果是,则通知他们更改(处理程序(此,新的PropertyChangedEventArgs( propertyName))。

简而言之,它是一个发布/订阅通知系统,用于一个对象向其订阅者发布某些更改。

10-04 13:30