Simple project to use navigation in Avalonia 11 with CommunityToolkit.MVVM.
Two projects are included:
- AvaloniaNavigation.MVVM — No DI, ViewModels are manually instantiated.
- AvaloniaNavigation.DI — Uses
Microsoft.Extensions.DependencyInjectionfor constructor injection of ViewModels and services.
- Avalonia 11.3.1
- CommunityToolKit.MVVM 8.4.2
- Microsoft.Extensions.DependencyInjection 9.0.3 (DI project only)
The OG implementation using ReactiveUI.
With CommunityToolkit.MVVM
In this sample, the MainWindow.axaml changes the "CurrentPage", which is a UserControl within the MainWindow.
To change the view, we have two options:
-
ContentControl (Normal) https://docs.avaloniaui.net/controls/data-display/contentcontrol
-
TransitioningContentControl (With animation) https://docs.avaloniaui.net/controls/data-display/transitioningcontentcontrol
<Grid RowDefinitions="*,Auto" Margin="10">
<!-- <ContentControl Content="{Binding CurrentPage}" /> -->
<TransitioningContentControl Content="{Binding CurrentPage}" />
<StackPanel Grid.Row="1" Orientation="Horizontal" Spacing="5" HorizontalAlignment="Right">
<Button Command="{Binding NavigatePreviousCommand}" Content="Back" />
<Button Command="{Binding NavigateNextCommand}" Content="Next" />
</StackPanel>
</Grid>



