using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; namespace Yunda.SOMS.DataMonitoringServer.Viewport.Domain.Helper { public static class NotifyPropertyChangedExtension { public static void MutateVerbose(this INotifyPropertyChanged instance, ref TField field, TField newValue, Action raise, [CallerMemberName] string propertyName = null) { if (EqualityComparer.Default.Equals(field, newValue)) return; field = newValue; raise?.Invoke(new PropertyChangedEventArgs(propertyName)); } } }