Описание тега inotifypropertychanged

INotifyPropertyChanged - это интерфейс, определенный в Microsoft .NET, используемый для уведомления слушателей об изменениях данных, внесенных в объект. Эти уведомления позволяют элементам пользовательского интерфейса с привязкой к данным обновлять свое отображение автоматически при изменении свойств данных, которые они должны изменить.

INotifyPropertyChanged определяет единственное свойство события, PropertyChanged. Ожидается, что классы, реализующие этот интерфейс, будут запускатьPropertyChangedсобытие при изменении значения свойства. Обычно это делается путем добавления кода к установщику свойства каждого свойства, чтобы запускать событие всякий раз, когда свойство присваивается.

Чтобы предоставить уведомление об изменении свойства, ваш класс должен быть производным от INotifyPropertyChangedи предоставить защищенный метод для вызова события. Типичная реализация этого метода показана ниже:

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

Затем этот метод можно вызвать в установщике свойств, чтобы уведомить клиентов об изменении свойства.

public string Description
{
    get { return _description; }
    set
    {
        _description = value;
        OnPropertyChanged("Description");
    } 
}

Установщики свойств обычно запускают измененное событие, только если новое значение действительно отличается от текущего значения свойства.

Обратите внимание, что PropertyChangedСобытие возникает после изменения значения свойства, и событие не предоставляет информацию о том, каким было старое значение до изменения. ВINotifyPropertyChanging интерфейс может использоваться для сигнализации об изменении свойства до того, как это изменение произойдет.

В INotifyPropertyChanged interface чаще всего используется для облегчения привязки данных между вашим кодом и элементами управления пользовательского интерфейса в таких технологиях пользовательского интерфейса, как Winforms и WPF.

Дополнительные сведения см. В документации MSDN для интерфейса INotifyPropertyChanged.