public ViewModelChangePropagation <T> Set <T>(ref T field, T value, [CallerMemberName] string propertyName = "") { var change = new ViewModelChange <T>(field, value); if (change.Changed) { field = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } return(new ViewModelChangePropagation <T>(change)); }
public ViewModelChangePropagation(ViewModelChange <T> change) { Change = change; }