Die App wird in der AppHostBuilderExtension konfiguriert, welche Ihr unter „Hosting“ im Projektordner findet. Um alle Features der App-Vorlage zu initialisieren, muss die Methode „ConfigureApp“ in der „MauiProgram.cs“ mit angehängt werden.
Dabei werden folgende Methoden ausgeführt.
public static MauiAppBuilder ConfigureApp(this MauiAppBuilder builder) { builder .RegisterDispatcher() .RegisterMainViewModels() .RegisterPageViewModels() .RegisterModalViewModels() .RegisterSettingsViewModels() .RegisterMainViews() .RegisterPageViews() .RegisterModalViews() .RegisterSettingsViews() .RegisterNavigationRoots(); ; return builder; }
Im MauiProgramm sieht das dann wie folgt aus.
public static MauiApp CreateMauiApp() { MauiAppBuilder builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .UseMauiCommunityToolkit() .ConfigureSyncfusionCore() .InitializeSharedMauiStyles() .InitializeSharedSyncfusionStyles() .ConfigureApp() //... ; //... }
Singleton & Transient
Grundsätzlich unterscheiden wir hier zwischen den zwei genannten Arten der Registrierung. Als Singleton werden alle ViewModels und Views registriert, welche über den App-Lebenszyklus verfügbar sind bzw. sein sollen. Dies trifft auf alle Hauptseiten zu.
Alle anderen Elemente, welche nur solange „Leben“ sollen, wie diese benötigt werden, werden als Transient registriert. All solche Elemente werden, sobald benötigt, erstellt und nach Gebrauch wieder freigegeben (GC).
Bei neuen View & ViewsModels
Wichtig! Solltet Ihr neue Views und/oder ViewModels hinzufügen, dann müsst Ihr diese in der AppHostBuilderExtension konfigurieren bzw. bekannt machen. Je nach Typ stehen dazu folgende Methoden zur Verfügung.
- RegisterMainViewModels / RegisterMainViews: Für alle Hauptseiten-/viewmodels
- RegisterPageViewModels / RegisterPageViews: Für alle Views & ViewModels im „Pages“-Ordner
- RegisterModalViewModels / RegisterModalViews: Für alle Views & VIewModels im „Modal“-Ordner
- RegisterSettingsViewModels / RegisterSettingsViews: Für alle Views & ViewModels im „Settings“-Ordner