A .NET library providing MVVM and asynchronous support features using Reactive Extensions for WPF, WinUI, MAUI, and Blazor.
ReactiveProperty is a .NET library that simplifies Model-View-ViewModel (MVVM) and asynchronous programming by leveraging Reactive Extensions (Rx). It provides core classes like ReactivePropertySlim<T> that wrap values and implement both IObservable<T> and INotifyPropertyChanged, enabling declarative data flow and seamless data binding across UI frameworks. It solves the problem of boilerplate code in traditional MVVM implementations by allowing developers to write concise, reactive ViewModels.
.NET developers building applications with MVVM patterns in UI frameworks like WPF, Blazor, WinUI, or MAUI, especially those already using or interested in Reactive Extensions (Rx).
Developers choose ReactiveProperty for its simplicity and declarative approach, which eliminates the need for complex ViewModel base classes and reduces boilerplate code. Its unique selling point is the lightweight ReactivePropertySlim core that works with any MVVM library and provides built-in validation and Rx-powered data flow without locking users into a specific framework.
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.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables concise ViewModel logic using Rx LINQ operators like Delay and Select, as shown in the sample where Input is transformed to Output with minimal code.
Doesn't require ViewModel base classes, allowing seamless integration with other MVVM libraries like Prism or Microsoft.Toolkit.Mvvm without lock-in.
Includes ValidatableReactiveProperty for validation with error observation and specific Blazor EditForm integration, simplifying form handling.
Offers ReactiveProperty.Core package with minimal dependencies, ideal for projects that don't need full Rx features or want to avoid System.Reactive.
The README notes that for new applications, R3 is preferred, indicating ReactiveProperty may not be the future-focused choice and could see reduced maintenance.
Requires familiarity with Reactive Extensions, which adds complexity for developers new to reactive programming patterns and operators.
Support is confined to GitHub issues, with the author not monitoring other forums, potentially slowing down community assistance and issue resolution.