Show / Hide Table of Contents

Практическое руководство. Реализация уведомления об изменении свойства

Для поддержки OneWay или TwoWay привязки для включения свойства целевого объекта привязки автоматическое отражение динамических изменений источника привязки (например, область просмотра обновляется автоматически, когда пользователь редактирует форму), класс необходимо предоставлять уведомления соответствующие изменения свойства. В этом примере показано, как создать класс, реализующий INotifyPropertyChanged.

Пример

Для реализации INotifyPropertyChanged необходимо объявить PropertyChanged событий и создайте OnPropertyChanged метод. Затем для каждого свойства, которому потребуются уведомления об изменениях, вы вызываете OnPropertyChanged при каждом обновлении свойства.

using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace SDKSample
{
  // This class implements INotifyPropertyChanged
  // to support one-way and two-way bindings
  // (such that the UI element updates when the source
  // has been changed dynamically)
  public class Person : INotifyPropertyChanged
  {
      private string name;
      // Declare the event
      public event PropertyChangedEventHandler PropertyChanged;

      public Person()
      {
      }

      public Person(string value)
      {
          this.name = value;
      }

      public string PersonName
      {
          get { return name; }
          set
          {
              name = value;
              // Call OnPropertyChanged whenever the property is updated
              OnPropertyChanged();
          }
      }

      // Create the OnPropertyChanged method to raise the event
      // The calling member's name will be used as the parameter.
      protected void OnPropertyChanged([CallerMemberName] string name = null)
      {
          PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
      }
  }
}

Пример того, как Person класс может использоваться для поддержки TwoWay привязки, см. в разделе Управление обновлением источника текст в текстовом поле.

См. также

  • Общие сведения об источниках привязки
  • Общие сведения о привязке данных
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX