public static void OnChanging(IPropertyOwner owner, params string[] propertyNames)
 {
     if (activeNotifiers.TryGetValue(owner, out PropertyChangeNotifier pcn))
     {
         string[] newChangingProperties = propertyNames.Except(pcn.changingProperties).ToArray();
         if (newChangingProperties.Length > 0)
         {
             pcn.changingProperties.UnionWith(newChangingProperties);
             owner.NotifyChanging(newChangingProperties);
         }
     }
     else
     {
         owner.NotifyChanging(propertyNames);
     }
 }