MVVM设计模式的基本指导要求

本文关键字:设计模式 MVVM | 更新日期: 2023-09-27 18:07:53

我不熟悉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));
        }
    }
}
我想知道PropertyChangedEventHandler的用途是什么?它是做什么的?

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

请用简单的方式解释一下,以便我能理解它们的用途和重要性。

谢谢

MVVM设计模式的基本指导要求

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

PropertyChangedEventHandler "表示处理当组件上的属性发生变化时引发的PropertyChanged事件的方法。"这行代码声明了一个名为PropertyChanged的事件。其他对象可以订阅该事件,以便在属性发生更改时收到通知。

2) this.RaisePropertyChanged("Age");

this.RaisePropertyChanged("Age")是对RaisePropertyChanged方法的调用,该方法反过来验证事件是否有订阅者(handler != null),如果有,则通知他们更改(handler(this, new PropertyChangedEventArgs(propertyName)))。

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

这两件事允许你的Person类通知用户界面(即MVVM中的视图),有些东西已经改变了。

:

PropertyChanged是一个事件(类型为PropertyChangedEventHandler),视图可以订阅,当触发时可能会做"某事"。

RaisePropertyChanged是一个你在类中调用的方法,说"嘿,我已经改变并触发事件(如上所述)"。

所以,假设你的人的名字改变了,那么PropertyChanged事件将被引发,然后视图将被通知发生了它可能感兴趣的事情。重点是,这个班级需要某种方式告诉世界上发生了什么事。它通过事件实现这一点。当然,每个人都可能忽略这个事件,但是通过提出它,你已经尽了自己的一份力量。