INotifyPropertyChanged was introduced in .NET 2.0. This interface has only one member, the PropertyChanged event that will notify listeners when a property of the implementing class is changed.
Demo
     - Open Visual Studio and select WPF application.
 
- Open/add one user control or window.
 
- Create one normal property, here I have added FirstName as in the following:
 
     
     
         - private string firstname = string.Empty;  
         
-   
         
-         public string FristName  
         
-         {  
         
-             get { return firstname; }  
         
-             set  
         
-             {  
         
-                 firstname = value;  
         
-              
         
-             }  
         
-  }  
 
 
- Add the same property into two controls as in the following:
 
     
     
         - <TextBlock Margin="2">First Name</TextBlock>  
         
- <TextBox Margin="2" Grid.Row="0" Grid.Column="1" MinWidth="120" Text="{Binding Path=FristName,ElementName=ThisControl,UpdateSourceTrigger=PropertyChanged}"></TextBox>  
         
- <TextBlock Margin="2" Grid.Column="2" Text="{Binding Path=FristName,ElementName=ThisControl,UpdateSourceTrigger=PropertyChanged}"></TextBlock>  
 
 
- Run the application, I entered the first name field but not displaying in my TextBlock in the right side.
 
 ![]() 
 
 ![]() 
 
 
- But we can see the property change in the preceding picture. But it's not reflecting it in the UI. 
 
- Implement the INotifyPropertyChanged interface, no change in the XAML.
 
     
     
         - public partial class INotify : UserControl, INotifyPropertyChanged  
         
-   
         
-  public INotify()  
         
-  {  
         
-      InitializeComponent();  
         
-  }  
         
-   
         
-  private string firstname = string.Empty;  
         
-   
         
-  public string FristName  
         
-  {  
         
-      get { return firstname; }  
         
-      set  
         
-      {  
         
-          firstname = value;  
         
-          OnPropertyChanged("FristName");  
         
-      }  
         
-  }  
         
-   
         
-  
         
-  #region INotifyPropertyChanged Members  
         
-   
         
-  public event PropertyChangedEventHandler PropertyChanged;  
         
-  public void OnPropertyChanged(string txt)  
         
-  {  
         
-   
         
-      PropertyChangedEventHandler handle = PropertyChanged;  
         
-      if (handle != null)  
         
-      {  
         
-          handle(this, new PropertyChangedEventArgs(txt));  
         
-      }  
         
-  }  
         
-  #endregion  
 
 
- Run the application and see the change.
 
 ![]() 
 
- We got the change in the UI.
Conclusion 
The INotifyPropertyChanged interface will notify the source of changes to the target.