ServiceCollectionExtensions

ServiceCollectionExtensions tillhandahåller en serie tilläggsmetoder som förenklar registreringen av vyer och tillhörande ViewModels i .NET MAUI IServiceCollection.

Finns ServiceCollectionExtensions under CommunityToolkit.Maui namnområdet så lägg bara till följande rad för att komma igång:

using CommunityToolkit.Maui;

Obs! Dessa tilläggsmetoder registrerar endast View och ViewModels i IServiceCollection. Utvecklare är fortfarande ansvariga för att tilldela den injicerade instansen av ViewModel till egenskapen BindingContext för View.

Dessutom förutsätter dessa tilläggsmetoder att det finns en en-till-en-relation mellan View och ViewModel och att båda delar samma livslängd. Utvecklare måste återgå till att registrera vyer och ViewModels individuellt för att kunna ange olika livslängder eller hantera scenarier där flera vyer använder samma ViewModel.

Registrera vyer och ViewModels

Med följande metoder kan du registrera vyer och ViewModels i .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Lägger till en begränsad vy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna 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>();
    }
}

Typparametrar

Tview

Typen av vy som ska läggas till. Begränsad till BindableObject

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

IServiceCollection för att lägga till View och ViewModel i.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

AddSingleton<TView, TViewModel>(IServiceCollection)

Lägger till en singleton-vy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna 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>();
    }
}

Typparametrar

Tview

Typen av vy som ska läggas till. Begränsad till BindableObject

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som vyn och visningsmodellen ska läggas till i.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

AddTransient<TView, TViewModel>(IServiceCollection)

Lägger till en tillfällig vy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna 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>();
    }
}

Typparametrar

Tview

Typen av View som ska läggas till. Begränsad till BindableObject

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som View och ViewModel ska läggas till i.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

Registrera vyer och ViewModels med Shell Route

Med följande metoder kan du registrera vyer och ViewModels i .NET MAUI IServiceCollection och uttryckligen registrera en väg till vyn i .NET MAUI Shell-routning.

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

Lägger till en begränsad vy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna IServiceCollection och registrerar vyn för Shell-navigering på den väg som anges i routningsparametern. Du kan ange ett valfritt RouteFactory alternativ för att styra visningskonstruktionen.

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");
    }
}

Typparametrar

Tview

Typen av View som ska läggas till. Begränsad till NavigableElement

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som View och ViewModel ska läggas till i.

route Sträng

Den väg som vyn kan navigeras till i .NET MAUI Shell.

factory (optional) RouteFactory

Den RouteFactory för att styra skapandet av View.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

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

Lägger till en singletonvy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna IServiceCollection och registrerar vyn för Shell-navigeringen på den väg som anges i routningsparametern. Du kan ange ett valfritt RouteFactory alternativ för att styra visningskonstruktionen.

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");
    }
}

Typparametrar

Tview

Typen av View som ska läggas till. Begränsad till NavigableElement

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som View och ViewModel ska läggas till i.

route Sträng

Den väg som vyn kan navigeras till i .NET MAUI Shell.

factory (optional) RouteFactory

RouteFactory för att styra View-konstruktionen.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

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

Lägger till en tillfällig vy av den typ som anges i TView och ViewModel av typen TViewModel till den angivna IServiceCollection och registrerar vyn för Shell-navigering på den väg som anges i routningsparametern. Du kan ange ett valfritt RouteFactory alternativ för att styra visningskonstruktionen.

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");
    }
}

Typparametrar

Tview

Typen av View som ska läggas till. Begränsad till NavigableElement

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som View och ViewModel ska läggas till i.

route Sträng

Den väg som vyn kan navigeras till i .NET MAUI Shell.

factory (optional) RouteFactory

RouteFactory för att styra skapandet av vyn.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

Registrera popup-vy och vymodell

Med följande metoder kan du registrera popup-baserade vyer och ViewModels i .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Lägger till en tillfällig vy av den typ som anges i TPopupView och ViewModel av typen TPopupViewModel till den angivna 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>();
    }
}

Typparametrar

Tview

Typen av View som ska läggas till. Begränsad till Popup

TViewModel

Typen av ViewModel som ska läggas till. Begränsad till referenstyper som implementerar INotifyPropertyChanged

Parameters

services IServiceCollection

Den IServiceCollection som View och ViewModel ska läggas till i.

Returns

IServiceCollection En referens till den här instansen när åtgärden har slutförts.

API

Källkoden för ServiceCollectionExtensions finns på lagringsplatsen .NET MAUI Community Toolkit GitHub.