ChangeMonitor.HasChanged ChangeMonitor.HasChanged ChangeMonitor.HasChanged ChangeMonitor.HasChanged Property


Gets a value that indicates that the state that is monitored by the ChangeMonitor class has changed.

 property bool HasChanged { bool get(); };
public bool HasChanged { get; }
member this.HasChanged : bool
Public ReadOnly Property HasChanged As Boolean

Property Value

true if the state that is monitored by the ChangeMonitor instance has changed; otherwise, false.


You can check the value of this property in a derived ChangeMonitor class to see whether a dependency has changed.

The value is set to true when a dependency change occurs (that is, when the OnChanged method is called). After the OnChanged method is called by the derived class, the value of the HasChanged property will be true, regardless of whether a OnChangedCallback instance has been notified by a call to the NotifyOnChanged method.


Callers can check the HasChanged property to see whether a dependency has changed. However, in a multi-threaded environment, a simpler and more maintainable approach is to insert data into a cache implementation without checking the HasChanged property. Cache implementations must check the HasChanged property for you and must not perform an insert or set operation if one or more associated dependencies have already changed.

Applies to

See also