ServiceCollectionExtensions

De ServiceCollectionExtensions bieden een reeks uitbreidingsmethoden waarmee het registreren van weergaven en de bijbehorende ViewModels in de .NET MAUI IServiceCollection wordt vereenvoudigd.

De ServiceCollectionExtensions is te vinden in de naamruimte CommunityToolkit.Maui, dus voeg de volgende regel toe om te beginnen:

using CommunityToolkit.Maui;

OPMERKING: Deze uitbreidingsmethoden registreren alleen de View en ViewModels in de IServiceCollection. Ontwikkelaars zijn nog steeds verantwoordelijk voor het toewijzen van het geïnjecteerde exemplaar van het ViewModel aan de BindingContext eigenschap van de View.

Bij deze uitbreidingsmethoden wordt ervan uitgegaan dat er een een-op-een-relatie is tussen View en ViewModel en dat beide dezelfde levensduur hebben. Ontwikkelaars moeten terugkeren naar het afzonderlijk registreren van Views en ViewModels om verschillende levensduurs op te geven of om scenario's te verwerken waarin meerdere weergaven gebruikmaken van hetzelfde ViewModel.

Weergaven en ViewModels registreren

Met de volgende methoden kunt u Views en ViewModels registreren in de .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Voegt een scoped View van het type dat is opgegeven in TView en een ViewModel van het type TViewModel toe aan de opgegeven IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScoped<HomePage, HomePageViewModel>();
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot BindableObject

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

AddSingleton<TView, TViewModel>(IServiceCollection)

Hiermee voegt u een singleton-View van het type dat is opgegeven in TView en een ViewModel van het type TViewModel toe aan de opgegeven IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingleton<HomePage, HomePageViewModel>();
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot BindableObject

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

AddTransient<TView, TViewModel>(IServiceCollection)

Voegt een transiënte view van het in TView opgegeven type en een ViewModel van het type TViewModel toe aan de opgegeven IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransient<HomePage, HomePageViewModel>();
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot BindableObject

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

Weergaven en ViewModels registreren met Shell-route

Met de volgende methoden kunt u Weergaven en ViewModels registreren in de .NET MAUI IServiceCollection en expliciet een route naar de weergave registreren binnen .NET MAUI Shell-routering.

AddScopedWithShellRoute<TView, TViewModel>(services, route, factory)

Hiermee wordt een bereikweergave van het type toegevoegd dat is opgegeven in TView en ViewModel van het type TViewModel aan de opgegeven IServiceCollection en wordt de weergave voor Shell-navigatie geregistreerd bij de route die is opgegeven in de routeparameter. Een optioneel RouteFactory kan worden verstrekt om de bouw van de weergave te regelen.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScopedWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot NavigableElement

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

route Tekenreeks

De route waarnaar binnen .NET MAUI Shell naar de View kan worden genavigeerd.

factory (optional) RouteFactory

De RouteFactory om de constructie van View te regelen.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

AddSingletonWithShellRoute<TView, TViewModel>(services, route, factory)

Voegt een singleton-View van het in TView opgegeven type en een ViewModel van het type TViewModel toe aan de opgegeven IServiceCollection en registreert de View voor Shell-navigatie onder de in de parameter route opgegeven route. Een optioneel RouteFactory kan worden verstrekt om de bouw van de weergave te regelen.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingletonWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot NavigableElement

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

route Tekenreeks

De route waarnaar de View kan worden genavigeerd binnen .NET MAUI Shell.

factory (optional) RouteFactory

De RouteFactory om de opbouw van de weergave te beheren.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

AddTransientWithShellRoute<TView, TViewModel>(services, route, factory)

Voegt een tijdelijke weergave toe van het type dat is opgegeven in TView en ViewModel van het type TViewModel aan de opgegeven IServiceCollection en registreert de weergave voor Shell-navigatie op de route die is opgegeven in de routeparameter. Een optioneel RouteFactory kan worden verstrekt om de bouw van de weergave te regelen.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot NavigableElement

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

route string

De route waarheen binnen .NET MAUI Shell naar de View kan worden genavigeerd.

factory (optional) RouteFactory

De RouteFactory om de constructie van de weergave te beheren.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

Pop-upweergave en weergavemodel registreren

Met de volgende methoden kunt u pop-upweergaven en ViewModels registreren in de .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Voegt een transiënte View van het in TPopupView opgegeven type en een ViewModel van het type TPopupViewModel toe aan de opgegeven IServiceCollection.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientPopup<UpdatingPopup, UpdatingPopupViewModel>();
    }
}

Type parameters

Tview

Het type weergave dat moet worden toegevoegd. Beperkt tot Popup

TViewModel

Het type ViewModel dat moet worden toegevoegd. Beperkt tot referentietypen die INotifyPropertyChanged implementeren

Parameters

services IServiceCollection

De IServiceCollection waaraan u de View en ViewModel wilt toevoegen.

Returns

IServiceCollection Een verwijzing naar dit exemplaar nadat de bewerking is voltooid.

API

U vindt de broncode voor ServiceCollectionExtensions in de .NET MAUI Community Toolkit GitHub opslagplaats.