Table of Contents

Hinzufügen von Uno Extensions Navigation in eine bestehende Anwendung

Solltest du schon eine existierende Uno Anwendung haben, kannst du die Extensions Navigation natürlich hinzufügen.

Hinzufügen der UnoFeatures

In der Projektdatei, zu erkennen an der Endung .csproj, brauchst du dafür neben dem Uno.Sdk folgende UnoFeatures Elemente:

<UnoFeatures>
    Hosting;
    Mvux;
    Navigation;
    Toolkit;
</UnoFeatures>
Tip

Das Toolkit Feature wird nur benötigt, wenn Navigations-Steuerelemente wie TabBar oder DrawerControl verwendet werden sollen.

Note

Wir benötigen grundsätzlich das Hosting Feature und die DependencyInjection Funktionalität in unserer Anwendung zu verwenden. Ich sage hier absichtlich "grundsätzlich", da ich bspw. in der hier enthaltenen MvuxGallery und SimpleMemberSelectionApp Anwendungen das Hosting Feature entfernt habe, die App erstellt habe und entgegen der offiziellen Dokumentation ich keine Probleme feststellen konnte. Alle DI Parameter wurden korrekt aufgelöst und ich war weiterhin im stande ConfigureServices für die Registrierung von bspw. KeyedService in der zugehörigen App.xaml.cs Datei mit dem Uno.Sdk 6.3.28 zu verwenden.

App.xaml.cs Konfiguration

Füge deiner Datei App.xaml.cs folgenden Inhalt hinzu, wenn nicht bereits enthalten:

+    protected async override void OnLaunched(LaunchActivatedEventArgs args)
+    {
+        var builder = this.CreateBuilder(args)
+            // Fügt Unterstützung für weitere Navigations-Steuerelemente wie TabBar and NavigationView hinzu
+            .UseToolkitNavigation()
+            .Configure(host => host
+                // Füge den Callback zur Methode RegisterRoutes hinzu, diese wird die Routen in der Anwendung definieren.
+                .UseNavigation(ReactiveViewModelMappings.ViewModelMappings, RegisterRoutes)
+            );
        MainWindow = builder.Window;

#if DEBUG
        MainWindow.UseStudio();
#endif
        MainWindow.SetWindowIcon();

+        Host = await builder.NavigateAsync<Shell>();
    }

Nächste Schritte