private void SourcePropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (this.weakListener != null)
     {
         IPropertyChangedListener target = this.weakListener.Target as IPropertyChangedListener;
         if (target != null)
         {
             target.OnPropertyChanged(sender, e);
         }
         else
         {
             this.Detach();
         }
     }
 }