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.
The following methods are executed.
public static MauiAppBuilder ConfigureApp(this MauiAppBuilder builder) { builder .RegisterDispatcher() .RegisterMainViewModels() .RegisterPageViewModels() .RegisterModalViewModels() .RegisterSettingsViewModels() .RegisterMainViews() .RegisterPageViews() .RegisterModalViews() .RegisterSettingsViews() .RegisterNavigationRoots(); ; return builder; }
In the MauiProgram it looks like this.
public static MauiApp CreateMauiApp() { MauiAppBuilder builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .UseMauiCommunityToolkit() .ConfigureSyncfusionCore() .InitializeSharedMauiStyles() .InitializeSharedSyncfusionStyles() .ConfigureApp() //... ; //... }
Singleton & Transient
Basically, we differentiate between the two types of registration mentioned. All ViewModels and Views that are or should be available over the app lifecycle are registered as a singleton. This applies to all main pages.
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).
For new View & ViewModels
Important! If you add new Views and/or ViewModels, you must configure or make them known in the AppHostBuilderExtension. Depending on the type, the following methods are available for this.
- RegisterMainViewModels / RegisterMainViews: For all main page/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