Tags · reactiveui/ReactiveUI.Binding.SourceGenerators · GitHub
Skip to content

Tags: reactiveui/ReactiveUI.Binding.SourceGenerators

Tags

v9.1.0

Toggle v9.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
perf(generator): share semantic models per source file (#169)

- Reuse bound members across call sites in a compilation copy.
- Add regression coverage for model reuse.
- Measure XAML view generation across binding counts.

v9.0.0

Toggle v9.0.0's commit message
fix: dispose the displaced binding when BindCommandUnsafe rebinds (#165)

- RuntimeCommandBindingFallback and RuntimeInteractionFallback hold the current binding in a SwapDisposable, so a rebind disposes the binding it replaces.
- Add tests for one active binding per call and for disposal after a rebind.
- Build the .NET 11 assemblies without runtime-async. Mono does not support it, so it breaks Blazor WebAssembly and other Mono hosts.
- Update TUnit to 1.72.16.
- Fix the benchmarks for ReactiveUI 25: drop an unused using, and let the generated ToProperty name CountViewModel.

Fixes #163

v8.8.1

Toggle v8.8.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: report a runtime property chain's initial value once when a link…

… emits on subscribe (#162)

- Ignore a link notification raised from inside its own subscribe. The chain reads the same value straight after.
- WhenAnyValueUnsafe, WhenChanged and the Unsafe bindings report one initial value through a property with no change notification.
- BindUnsafe does not write the view's value back to the view model when the binding is created.

Fixes #160

v8.8.0

Toggle v8.8.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: bind a field control to the view's current view model, so a view…

… can bind before it has one (#158)

A binding whose view side started at a field, such as a control named in XAML, bound the view model instance it was handed and threw when it was null. A field link's owner info now lists the view's ViewModel property, so the binding roots at the view and follows each view model it is given, as a binding onto a property already did.

v8.7.0

Toggle v8.7.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: add Avalonia and Uno binding packages and route view writes thr…

…ough Primitives sequencers (#156)

* feat: add ReactiveUI.Binding.Avalonia and route view writes through Primitives sequencers

Add the ReactiveUI.Binding.Avalonia and ReactiveUI.Binding.Avalonia.Reactive
packages. They register a trim-safe Avalonia property observer, the Avalonia
command binder and AvaloniaViewThreadInvoker through AvaloniaBindingModule and
WithAvalonia(). The generator routes writes to an AvaloniaObject through that
invoker.

Add SequencerViewThreadInvoker<TTarget, TSequencer>, which asks the
ReactiveUI.Primitives sequencer that owns an object for thread access and
schedules writes on it. The WPF, WinForms, MAUI and Avalonia invokers derive
from it, keeping their names, Instance and priorities.

* feat: add ReactiveUI.Binding.Uno and build Uno projects through their own solution filter

Add ReactiveUI.Binding.Uno and ReactiveUI.Binding.Uno.Reactive. UnoBindingModule
and WithUno() register UnoViewThreadInvoker, which routes writes to an Uno
control through the DispatcherQueueSequencer of the queue that owns it. The
generator carries the invoker for Microsoft.UI.Xaml.DependencyObject targets
when the package is referenced, and reports no RXUIBIND017 for WinUI, which
shares that type.

The Uno.Sdk projects sit in ReactiveUI.Binding.SourceGenerators.Uno.slnf and CI
builds them with MSBuild in their own Windows job; everything else builds from
ReactiveUI.Binding.SourceGenerators.slnf. ReactiveUI.Primitives moves to 8.4.0.

* build: let Visual Studio's MSBuild use the preview .NET SDK the dotnet CLI already uses

* fix: build the Uno Windows head without the Uno global usings it has no package for

* fix: drop the Windows platform attribute from the Uno baselines, which Uno.Sdk does not emit

* chore(deps): update TUnit and PublicApiSharp.Analyzers

* fix: include the shared polyfills with a valid glob, which Visual Studio's MSBuild rejects as a path

v8.6.0

Toggle v8.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: ask an interaction as an observable and run its handlers on a s…

…cheduler (#151)

v8.5.0

Toggle v8.5.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: generate AppKit BindCommand bindings that compile against ObjCRu…

…ntime.Selector (#150)

v8.4.0

Toggle v8.4.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: generate bindings for controls named in MAUI and Avalonia XAML (#…

…148)

- Read the XAML pages MAUI and Avalonia pass to generators, and declare the fields their generators write.
- Bind, OneWayBind, BindCommand and the rest now dispatch for x:Name controls instead of reporting RXUIBIND021.
- WPF and WinUI fields are written before compilation and were already visible; a WPF test confirms it.
- Add a xaml docs page.

v8.3.0

Toggle v8.3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: generate bindings for members ReactiveUI.SourceGenerators writes (

#146)

- Read [Reactive], [ReactiveCollection], [BindableDerivedList], [ReactiveCommand] and [IReactiveObject] by metadata name.
- Declare what each writes in a private copy of the compilation that call sites are read from.
- Add RXUIBIND021: a binding call with no generated binding throws at run time.
- Add a sourcegenerators docs page, and rewrite the example that called a stub to show its exception.

v8.2.0

Toggle v8.2.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: map a view from the service locator under its own contract (#145)

- Add MapFromServiceLocator<TViewModel, TView>(contract, serviceContract).
- A contracted IViewFor<T> registration was unreachable: the lookup always used no contract.
- The existing overloads keep asking with no contract.