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); } }