Skip to content

Commit e1ee327

Browse files
committed
Switch to RxSchedulers, adjust ReactiveUI and deps
Migrate ReactiveUI scheduler and state APIs and update related code—replace RxApp.MainThreadScheduler with RxSchedulers.MainThreadScheduler and RxApp.DefaultExceptionHandler with RxState.DefaultExceptionHandler; adapt UseReactiveUI call to the builder overload and add a WPF startup ReactiveUI builder. Also add explicit Convert.ToDouble bindings for scrollbar maximums. Bump multiple package versions (Avalonia, ReactiveUI, ReactiveUI.Avalonia, SkiaSharp, Svg.Skia, System.Text.Json, NLog, Microsoft.NET.Test.Sdk, and others) to newer releases. Changes touch demo apps, WPF/Avalonia views, view models, observable extensions, and several csproj files to align with API updates and dependency upgrades.
1 parent 0da897f commit e1ee327

14 files changed

Lines changed: 73 additions & 55 deletions

File tree

src/Demo.AvaloniaApplication.Desktop/Demo.AvaloniaApplication.Desktop.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Avalonia.Desktop" Version="11.3.10" />
15-
<PackageReference Include="System.Text.Json" Version="10.0.1" />
14+
<PackageReference Include="Avalonia.Desktop" Version="11.3.12" />
15+
<PackageReference Include="System.Text.Json" Version="10.0.3" />
1616
</ItemGroup>
1717

1818
<ItemGroup>

src/Demo.AvaloniaApplication.Desktop/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ public static AppBuilder BuildAvaloniaApp() =>
2020
.UsePlatformDetect()
2121
.WithInterFont()
2222
.LogToTrace()
23-
.UseReactiveUI();
23+
.UseReactiveUI(builder => { });
2424
}

src/Demo.AvaloniaApplication/Demo.AvaloniaApplication.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
</ItemGroup>
1515

1616
<ItemGroup>
17-
<PackageReference Include="Avalonia" Version="11.3.10" />
18-
<PackageReference Include="Avalonia.Desktop" Version="11.3.10" />
19-
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.10" />
20-
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.10" />
17+
<PackageReference Include="Avalonia" Version="11.3.12" />
18+
<PackageReference Include="Avalonia.Desktop" Version="11.3.12" />
19+
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.12" />
20+
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.12" />
2121
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
22-
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.10" />
23-
<PackageReference Include="Splat.DependencyInjection.SourceGenerator" Version="1.2.3">
22+
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.12" />
23+
<PackageReference Include="Splat.DependencyInjection.SourceGenerator" Version="2.2.2">
2424
<PrivateAssets>all</PrivateAssets>
2525
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2626
</PackageReference>
27-
<PackageReference Include="System.Text.Json" Version="10.0.1" />
27+
<PackageReference Include="System.Text.Json" Version="10.0.3" />
2828
</ItemGroup>
2929

3030
<ItemGroup>

src/Demo/App.xaml.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading.Tasks;
77
using System.Windows;
88
using NLog.Targets;
9+
using ReactiveUI.Builder;
910
using Splat;
1011

1112
namespace Demo
@@ -21,6 +22,13 @@ public App()
2122
// Locator.CurrentMutable.UseNLogWithWrappingFullLogger();
2223
}
2324

25+
protected override void OnStartup(StartupEventArgs e)
26+
{
27+
base.OnStartup(e);
28+
29+
var _ = RxAppBuilder.CreateReactiveUIBuilder().WithWpf().BuildApp();
30+
}
31+
2432
private void ConfigureLogs()
2533
{
2634
var config = new NLog.Config.LoggingConfiguration();

src/Demo/CanvasWindow.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ public CanvasWindow()
3131
TestGrid.ViewModel.SelectionMode = SelectionMode.Single;
3232

3333
HierarchyGrid
34-
.ViewModel.SelectionChanged.ObserveOn(RxApp.MainThreadScheduler)
34+
.ViewModel.SelectionChanged.ObserveOn(RxSchedulers.MainThreadScheduler)
3535
.Subscribe(selections =>
3636
{
3737
TextBlockSelection.Text = $"Selection count: {selections.Length}";
3838
});
3939

4040
HierarchyGrid
41-
.ViewModel.EditedCellChanged.ObserveOn(RxApp.MainThreadScheduler)
41+
.ViewModel.EditedCellChanged.ObserveOn(RxSchedulers.MainThreadScheduler)
4242
.Subscribe(oec =>
4343
{
4444
TextBlockEdition.Text = oec.Match(

src/Demo/Demo.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
<ItemGroup>
2020
<PackageReference Include="Bogus" Version="35.6.5" />
21-
<PackageReference Include="NLog" Version="6.0.7" />
21+
<PackageReference Include="NLog" Version="6.1.1" />
2222
</ItemGroup>
2323

2424
<ItemGroup>

src/HierarchyGrid.Avalonia/Grid.axaml.cs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public Grid()
5050
this.WhenAnyValue(x => x.ViewModel)
5151
.WhereNotNull()
5252
.Throttle(TimeSpan.FromMilliseconds(50))
53-
.ObserveOn(RxApp.MainThreadScheduler)
53+
.ObserveOn(RxSchedulers.MainThreadScheduler)
5454
.Do(vm => PopulateFromViewModel(this, vm, disposables))
5555
.Subscribe()
5656
.DisposeWith(disposables);
@@ -100,7 +100,7 @@ CompositeDisposable disposables
100100
handler => view.SkiaElement.PaintSurface += handler,
101101
handler => view.SkiaElement.PaintSurface -= handler
102102
)
103-
.ObserveOn(RxApp.MainThreadScheduler)
103+
.ObserveOn(RxSchedulers.MainThreadScheduler)
104104
.Subscribe()
105105
.DisposeWith(disposables);
106106

@@ -110,7 +110,7 @@ CompositeDisposable disposables
110110
handler => view.SkiaElement.PointerMoved += handler,
111111
handler => view.SkiaElement.PointerMoved -= handler
112112
)
113-
.ObserveOn(RxApp.MainThreadScheduler)
113+
.ObserveOn(RxSchedulers.MainThreadScheduler)
114114
.Subscribe()
115115
.DisposeWith(disposables);
116116

@@ -129,7 +129,7 @@ CompositeDisposable disposables
129129
handler => view.SkiaElement.PointerPressed += handler,
130130
handler => view.SkiaElement.PointerPressed -= handler
131131
)
132-
.ObserveOn(RxApp.MainThreadScheduler)
132+
.ObserveOn(RxSchedulers.MainThreadScheduler)
133133
.Subscribe()
134134
.DisposeWith(disposables);
135135

@@ -139,7 +139,7 @@ CompositeDisposable disposables
139139
handler => view.SkiaElement.PointerWheelChanged += handler,
140140
handler => view.SkiaElement.PointerWheelChanged -= handler
141141
)
142-
.ObserveOn(RxApp.MainThreadScheduler)
142+
.ObserveOn(RxSchedulers.MainThreadScheduler)
143143
.Subscribe()
144144
.DisposeWith(disposables);
145145

@@ -185,10 +185,20 @@ CompositeDisposable disposables
185185
)
186186
.DisposeWith(disposables);
187187

188-
view.OneWayBind(viewModel, vm => vm.MaxHorizontalOffset, v => v.HorizontalScrollBar.Maximum)
188+
view.OneWayBind(
189+
viewModel,
190+
vm => vm.MaxHorizontalOffset,
191+
v => v.HorizontalScrollBar.Maximum,
192+
Convert.ToDouble
193+
)
189194
.DisposeWith(disposables);
190195

191-
view.OneWayBind(viewModel, vm => vm.MaxVerticalOffset, v => v.VerticalScrollBar.Maximum)
196+
view.OneWayBind(
197+
viewModel,
198+
vm => vm.MaxVerticalOffset,
199+
v => v.VerticalScrollBar.Maximum,
200+
Convert.ToDouble
201+
)
192202
.DisposeWith(disposables);
193203

194204
view.SkiaElement.Invalidate();

src/HierarchyGrid.Avalonia/HierarchyGrid.Avalonia.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
</PropertyGroup>
2020

2121
<ItemGroup>
22-
<PackageReference Include="Avalonia.Skia" Version="11.3.10" />
22+
<PackageReference Include="Avalonia.Skia" Version="11.3.12" />
2323
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
24-
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.10" />
24+
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.3.12" />
2525
<PackageReference Include="ReactiveMarbles.ObservableEvents.SourceGenerator" Version="1.3.1" PrivateAssets="all" />
26-
<PackageReference Include="ReactiveUI.Avalonia" Version="11.3.8" />
27-
<PackageReference Include="SkiaSharp.Views" Version="3.119.1" />
28-
<PackageReference Include="System.Text.Json" Version="10.0.1" />
26+
<PackageReference Include="ReactiveUI.Avalonia" Version="11.4.7" />
27+
<PackageReference Include="SkiaSharp.Views" Version="3.119.2" />
28+
<PackageReference Include="System.Text.Json" Version="10.0.3" />
2929
</ItemGroup>
3030

3131
<ItemGroup>

src/HierarchyGrid.Definitions.Tests/HierarchyGrid.Definitions.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
<ItemGroup>
99
<PackageReference Include="FluentAssertions" Version="8.8.0" />
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
11-
<PackageReference Include="System.Text.Json" Version="10.0.1" />
10+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
11+
<PackageReference Include="System.Text.Json" Version="10.0.3" />
1212
<PackageReference Include="xunit" Version="2.9.3" />
1313
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
1414
<PrivateAssets>all</PrivateAssets>

src/HierarchyGrid.Definitions/HierarchyGrid.Definitions.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
<ItemGroup>
3333
<PackageReference Include="LanguageExt.Core" Version="4.4.9" />
3434
<PackageReference Include="morelinq" Version="4.4.0" />
35-
<PackageReference Include="ReactiveUI" Version="22.3.1" />
36-
<PackageReference Include="ReactiveUI.SourceGenerators" Version="2.5.1">
35+
<PackageReference Include="ReactiveUI" Version="23.1.8" />
36+
<PackageReference Include="ReactiveUI.SourceGenerators" Version="2.6.1">
3737
<PrivateAssets>all</PrivateAssets>
3838
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3939
</PackageReference>
40-
<PackageReference Include="System.Text.Json" Version="10.0.1" />
40+
<PackageReference Include="System.Text.Json" Version="10.0.3" />
4141
</ItemGroup>
4242
</Project>

0 commit comments

Comments
 (0)