ReactiveProperty

ReactiveProperty provides MVVM and asynchronous support features under Reactive Extensions. Target frameworks are .NET 6+, .NET Framework 4.7.2 and .NET Standard 2.0.

MIT License

Stars
870
Committers
29

Bot releases are visible (Hide)

ReactiveProperty - Release 7.8.0-pre202102201703

Published by github-actions[bot] over 3 years ago

Performance improvements for:

  • PropertyChangedAsObservable
  • CollectionChangedAsObservable
  • CanExecuteChangedAsObservable
  • ErrorsChangedAsObservable

This effects many methods that call those methods such as:

  • ObserveProperty
  • Observe(Add|Remove|Move|Replace|Reset)Changed
  • Observe(Add|Remove|Move|Replace)ChangedItems
  • ReadOnlyReactiveCollection
  • ObserveElementProperty
  • ObserveElementObservableProperty
  • ObserveErrorInfo
  • FilteredReadOnlyObservableCollection

Breaking changes

In the previous behavior, the method used SynchronizationCotext to automatically dispatch threads. This is due to the behavior of FromEvent and FromEventPattern in Reactive Extensions.
The new behavior does not automatically dispatch threads. It depends on which thread the event occurred in.

If you need to switch threads, please do so explicitly using the ObserveOn method.

ReactiveProperty - Release 7.7.1

Published by github-actions[bot] over 3 years ago

Performance improvement for FilteredReadOnlyObservableCollection.

ReactiveProperty - Release 7.7.0

Published by github-actions[bot] over 3 years ago

  • Revert exception handling logic of ReadOnlyReactiveProperty/ReadOnlyReactivePropertySlim to same as version 6
    • Version 7.0 to 7.6: When throwing an exception on Rx method chain such as Select, ReadOnlyReactiveProperty ignore the exception.
    • After 7.7 : When throwing an exception on Rx method chain such as Select, ReadOnlyReactiveProperty throw the exception. This behavior is the same as version 6 or previous.

If you would like to ignore exceptions, please set ReactivePropertyMode.IgnoreException to mode argument to constructor or factory methods such as ToReadOnlyReactiveProperty method.

ReactiveProperty - Release 7.6.1

Published by github-actions[bot] almost 4 years ago

Update dependency packages to latest:

  • System.Reactive 4.4.1 -> 5.0.0
  • Microsoft.Xaml.Behaviors.Wpf 1.1.19 -> 1.1.31
  • System.ComponentModel.Annotations 4.7.0 -> 5.0.0
ReactiveProperty - Release 7.6.0

Published by github-actions[bot] almost 4 years ago

Add

  • Add ExecuteAsync method to AsyncReactiveCommand class. The method is to call all processes are added to a command object and to be able to wait to finish all processes with await keyword.
ReactiveProperty - Release 7.5.1

Published by github-actions[bot] about 4 years ago

Add

  • Add nested property path support to ReactiveProperty.FromObject
ReactiveProperty - Release 7.5.0

Published by github-actions[bot] about 4 years ago

Add

  • Add to support nested property path on ObserveProperty, ToReactivePropertyAsSynchronized and ToReactivePropertySlimAsSynchronized like following:
    obj.ObserveProperty(x => x.Child.Name);
    
  • Add ObserveElementPropertyChanged, ObserveElementProperty and ObserveElementObservableProperty to IFilteredReadOnlyObservableCollection<T>.
ReactiveProperty - Release 7.5.0-pre202010141113

Published by github-actions[bot] about 4 years ago

Add

  • Add to support nested property path on ObserveProperty, ToReactivePropertyAsSynchronized and ToReactivePropertySlimAsSynchronized like following:
    obj.ObserveProperty(x => x.Child.Name);
    
ReactiveProperty - Release 7.4.1

Published by github-actions[bot] about 4 years ago

Add

  • Fixing a bug that is issue #188 ReactiveProperty doesn't raise PropertyChanged when HasErrors changes.
ReactiveProperty - v7.4.0

Published by runceel about 4 years ago

Add

  • Add ReactivePropertyScheduler.SetDefaultSchedulerFactory method to set custom logic to create an IScheduler instance to dispatch events to UI thread.
ReactiveProperty - v7.3.0

Published by runceel about 4 years ago

Add

  • Add ToReactivePropertySlimAsSynchronized extension method to INotifyPropertyChanged.
ReactiveProperty - v7.2.1

Published by runceel about 4 years ago

Fixes

  • Issue #177, PR #178 The issue that the CollectionChanged event raised from ObservableCollection changes with ReadOnlyReactiveCollection
ReactiveProperty - v7.2.0

Published by runceel about 4 years ago

Add

  • DisposePreviousValue extension method to IObservable<T>. Please see the issue #166 .
ReactiveProperty - v7.1.0

Published by runceel over 4 years ago

Changes

  • ObserveProperty's behavior changed calling OnNext when PropertyChanged with an empty property name
ReactiveProperty - v7.0.1

Published by runceel over 4 years ago

This update is no feature changes.

  • Fix #155 Some properties of Assembly file deleted in Ver 7.0.0
ReactiveProperty - v7.0.0

Published by runceel over 4 years ago

This is a major version up. There is a breaking change.
Please check the release note before updating it.

Breaking changes

  • A ReadOnlyReactiveProperty created from a completed IObservable never call OnNext callback, just call OnCompleted callback. In version 6, it had called OnNext callback even if the source IObservable was finished.
    If you would like to subscribe a value completed ReadOnlyReactiveProperty, then please use OnCompleted callback like below:
    var completedReadOnlyReactiveProperty = Observable.Return("1").ToReadOnlyReactiveProperty();
    completedReadOnlyReactiveProperty.Subscribe(
      // OnNext callback. Because it was created from completed IObservable, the OnNext callback is never called in this case.
      x => DoSomething(x), 
      // OnCompleted callback, it will be called.
      () => DoSomething(completedReadOnlyReactiveProperty.Value);
    
  • Separate the NuGet package to each platforms. The new packages are following:
    • ReactiveProperty
    • ReactiveProperty.Core
    • ReactiveProperty.WPF
    • ReactiveProperty.UWP
    • ReactiveProperty.XamarinAndroid
    • ReactiveProperty.XamariniOS

If you didn't use platform-specific features such as EventToReactiveCommand and EventToReactiveProperty on your code, then please use continuously ReactiveProperty package on v7.
If you used those features(It occurs as compile errors when updating the package), please add a package for the platform you are using.

And also, you have to change xmlns like below:

<!-- for WPF on .NET Framework on ReactiveProperty v6.2.0 or earlier -->
xmlns:rp="clr-namespace:Reactive.Bindings.Interactivity;assembly=ReactiveProperty.NET46"
<!-- for WPF on .NET Core on ReactiveProperty v6.2.0 or earlier -->
xmlns:rp="clr-namespace:Reactive.Bindings.Interactivity;assembly=ReactiveProperty.NETCore"

<!-- for WPF on .NET Core and Framework on ReactiveProperty v7.0.0 or lator -->
xmlns:rp="clr-namespace:Reactive.Bindings.Interactivity;assembly=ReactiveProperty.WPF"

Add

  • Add ObserveValidationErrorMessage extension method to ReactiveProperty class. This is a shortcut for rp.ObserveErrorChanged.Select(x => x?.OfType<string>()?.FirstOrDefault()).

Perfomance improvement

ReactiveProperty and ReadOnlyReactiveProperty become 40% faster than v6.

ReactiveProperty - v6.2.0

Published by runceel almost 5 years ago

Added

  • Localization support and placeholder support for DataAnnotations. #137

Thank you for your feedback @onodera-sf and @soi013 !

ReactiveProperty - v6.1.4

Published by runceel almost 5 years ago

Changes

  • Update System.Reactive to 4.2.0 from 4.1.5
  • Update Microsoft.Xaml.Behaviors.Wpf to 1.1.3 from 1.0.1
  • IReactiveProperty interface became to inherit IReadOnlyReactiveProperty. Thank you @shanon-hs #131
  • ReactiveProperty is officially support to WPF on .NET Core 3.0, because Microsoft.Xaml.Behaviors.Wpf became to support .NET Core.
ReactiveProperty - v6.1.3

Published by runceel about 5 years ago

This release is for fixing a binary breaking change at #109 and updating A value of AssemblyVersion is to correctly.

  • Restore AsyncReactiveCommand(IObservable) Method #128
    Thank you @mimtari.
ReactiveProperty - v6.1.2

Published by runceel about 5 years ago

Changes

NuGet package

  • Add a package dependency System.ComponentModel.Annotations to net461 and netcoreapp3.0. #125

New features

  • Add BindTo extension methods to ReactivePropertySlim, ReadOnlyReactivePropertySlim and ReadOnlyReactiveProperty. #122 .
  • Add Awaiter of ReactiveProperty and ReactivePropertySlim. #124

Thank you for your help @soi013, @s520 and @toras9000 .