ObservableAsProperty without ceremony
Computed Observable Properties
Turn observable calculations into normal readable properties.
Explore source ↗Capability
ObservableAsProperty attributes generate read-only computed properties and helpers, while generated WhenAny methods make reactive dependency pipelines concise and type-safe.
- 01
Generated ObservableAsPropertyHelper storage
- 02
Generated WhenAny extension methods
- 03
Computed validation and collection state
- 04
ReactiveUI-compatible pipelines
How it composes
From intent
to working system.
Declare
A read-only partial property marks the computed output.
Generate
The helper field, getter, and typed observable helpers join the type.
Compose
Reactive operators calculate values from source properties.
Notify
The generated property participates in normal binding updates.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package ReactiveGenerator<PackageReference Include="ReactiveGenerator" Version="VERSION" /><PackageVersion Include="ReactiveGenerator" Version="VERSION" />[ObservableAsProperty]public partial string FullName { get; }
public ProfileViewModel() => this.WhenAnyFirstName() .CombineLatest(this.WhenAnyLastName()) .Select(x => $"{x.First} {x.Second}") .ToProperty(this, x => x.FullName);Modules in this capability
Use one layer.
Compose the rest.
Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.