Megosztás a következőn keresztül:


Útmutató: Tulajdonságmódosítási értesítés implementálása

Ha támogatni szeretné OneWay vagy TwoWay kötést, hogy a kötési céltulajdonságok automatikusan tükrözzék a kötésforrás dinamikus változásait (például az előnézeti panel automatikusan frissüljön, amikor a felhasználó szerkeszt egy űrlapot), az osztálynak meg kell adnia a megfelelő módosított tulajdonságokról szóló értesítéseket. Ez a példa bemutatja, hogyan hozhat létre INotifyPropertyChangedmegvalósító osztályt.

példa

A INotifyPropertyChanged implementálásához deklarálnia kell az PropertyChanged eseményt, és létre kell hoznia a OnPropertyChanged metódust. Ezután minden olyan tulajdonság esetében, amelyről változásértesítést szeretne kapni, meghívja OnPropertyChanged, amikor a tulajdonság frissül.

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));
      }
  }
}
Imports System.ComponentModel
Imports System.Runtime.CompilerServices

' 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
    Implements INotifyPropertyChanged

    Private personName As String

    Sub New()
    End Sub

    Sub New(ByVal Name As String)
        Me.personName = Name
    End Sub

    ' Declare the event
    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged

    Public Property Name() As String
        Get
            Return personName
        End Get
        Set(ByVal value As String)
            personName = value
            ' Call OnPropertyChanged whenever the property is updated
            OnPropertyChanged()
        End Set
    End Property

    ' Create the OnPropertyChanged method to raise the event
    ' Use the name of the member that called this method in place of name
    Protected Sub OnPropertyChanged(<CallerMemberName> Optional name As String = Nothing)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name))
    End Sub

End Class

A Person kötés támogatásához használható TwoWay osztály példáját a Szövegdoboz szövegének forrásfrissítésével kapcsolatos témakörben találja.

Lásd még