public static void SubscribeWeak([CanBeNull] this INotifyPropertyChanged obj, [CanBeNull] FrameworkElement parent,
                                  [CanBeNull] EventHandler <PropertyChangedEventArgs> onPropertyChanged)
 {
     if (parent == null || obj == null || onPropertyChanged == null)
     {
         return;
     }
     obj.SubscribeWeak(onPropertyChanged);
     parent.OnActualUnload(() => {
         obj.UnsubscribeWeak(onPropertyChanged);
     });
 }