INotifyPropertyChanged.PropertyChanged Event
.NET Framework (current version)
Occurs when a property value changes.
Assembly: System (in System.dll)
The PropertyChanged event can indicate all properties on the object have changed by using either null or String.Empty as the property name in the PropertyChangedEventArgs.
The following code example demonstrates how to implement the PropertyChanged event of the INotifyPropertyChanged interface.
' This class implements a simple customer type ' that implements the IPropertyChange interface. Public Class DemoCustomer Implements INotifyPropertyChanged ' These fields hold the values for the public properties. Private idValue As Guid = Guid.NewGuid() Private customerNameValue As String = String.Empty Private phoneNumberValue As String = String.Empty Public Event PropertyChanged As PropertyChangedEventHandler _ Implements INotifyPropertyChanged.PropertyChanged ' This method is called by the Set accessor of each property. ' The CallerMemberName attribute that is applied to the optional propertyName ' parameter causes the property name of the caller to be substituted as an argument. Private Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName)) End Sub ' The constructor is private to enforce the factory pattern. Private Sub New() customerNameValue = "Customer" phoneNumberValue = "(312)555-0100" End Sub ' This is the public factory method. Public Shared Function CreateNewCustomer() As DemoCustomer Return New DemoCustomer() End Function ' This property represents an ID, suitable ' for use as a primary key in a database. Public ReadOnly Property ID() As Guid Get Return Me.idValue End Get End Property Public Property CustomerName() As String Get Return Me.customerNameValue End Get Set(ByVal value As String) If Not (value = customerNameValue) Then Me.customerNameValue = value NotifyPropertyChanged() End If End Set End Property Public Property PhoneNumber() As String Get Return Me.phoneNumberValue End Get Set(ByVal value As String) If Not (value = phoneNumberValue) Then Me.phoneNumberValue = value NotifyPropertyChanged() End If End Set End Property End Class
Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Show: