INotifyPropertyChanged Interface
Silverlight
Notifies clients that a property value has changed.
Namespace: System.ComponentModel
Assembly: System (in System.dll)
The INotifyPropertyChanged type exposes the following members.
The INotifyPropertyChanged interface is used to notify clients, typically binding clients, that a property value has changed.
For example, consider a Person object with a property called FirstName. To provide generic property-change notification, the Person type implements the INotifyPropertyChanged interface and raises a PropertyChanged event when FirstName is changed.
The following code example demonstrates the how to implement the INotifyPropertyChanged interface.
//Add using statements using System.ComponentModel; using System.Windows.Data; ... // Create a class that implements INotifyPropertyChanged public class Person : INotifyPropertyChanged { private string firstNameValue; public string FirstName{ get { return firstNameValue; } set { firstNameValue=value; // Call NotifyPropertyChanged when the property is updated NotifyPropertyChanged("FirstName"); } } // Declare the PropertyChanged event public event PropertyChangedEventHandler PropertyChanged; // NotifyPropertyChanged will raise the PropertyChanged event passing the // source property that is being updated. public void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Raise event only if value changes
PropertyChanged event should be raised only if property value has changed:
if (firstNameValue != value)
{
firstNameValue=value; // Call NotifyPropertyChanged when the property is updated NotifyPropertyChanged("FirstName");
}
This will help to avoid stack overflow in some special situations when different properties depends on each other.
- 10/8/2011
- kbalys