public PropertyChangedNotifier(NotifyPropertyChangedBase viewModel, string propertyName)
 {
     if (viewModel == null)
     {
         throw new ArgumentNullException(nameof(viewModel));
     }
     if (propertyName == null)
     {
         throw new ArgumentNullException(nameof(propertyName));
     }
     m_viewModel = viewModel;
     m_args      = new PropertyChangedEventArgs(propertyName);
 }
 public static void NotifyOfCallerMemberChanged(this NotifyPropertyChangedBase vm, [CallerMemberName] string memberName = "")
 {
     vm.NotifyOfPropertyChange(memberName);
 }
 public static PropertyChangedNotifier NotifierFromProperty(
     this NotifyPropertyChangedBase viewModel,
     string name)
 {
     return(new PropertyChangedNotifier(viewModel, name));
 }
 public static void NotifyOfPropertyChange(this NotifyPropertyChangedBase vm, string name)
 {
     // Note occurs overhead of allocating the eventArgs object
     vm.RaisePropertyChanged(new PropertyChangedEventArgs(name));
 }