ServiceCollectionExtensions

Il ServiceCollectionExtensions fornisce una serie di metodi di estensione che semplificano la registrazione delle visualizzazioni e dei relativi viewModel associati all'interno del .NET MAUI IServiceCollection.

Il ServiceCollectionExtensions si trova nel namespace CommunityToolkit.Maui, quindi basta aggiungere la seguente riga per iniziare:

using CommunityToolkit.Maui;

NOTA: Questi metodi di estensione registrano solo View e ViewModels nel IServiceCollection. Gli sviluppatori sono ancora responsabili dell'assegnazione dell'istanza iniettata di ViewModel alla proprietà BindingContext della vista.

Inoltre, questi metodi di estensione presuppongono che sia presente una relazione uno-a-uno tra View e ViewModel e che entrambi condividono la stessa durata. Gli sviluppatori dovranno ripristinare la registrazione di visualizzazioni e ViewModel singolarmente per specificare durate diverse o per gestire scenari in cui più visualizzazioni usano lo stesso ViewModel.

Registrazione di visualizzazioni e ViewModel

I metodi seguenti consentono di registrare Views e ViewModels all'interno del .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Aggiunge una visualizzazione con ambito del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a BindableObject

TViewModel

Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

AddSingleton<TView, TViewModel>(IServiceCollection)

Aggiunge una View singleton del tipo specificato in TView e un ViewModel del tipo TViewModel alla raccolta IServiceCollection specificata.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a BindableObject

TViewModel

Tipo di ViewModel da aggiungere. Vincolato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

AddTransient<TView, TViewModel>(IServiceCollection)

Aggiunge una visualizzazione temporanea del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a BindableObject

TViewModel

Tipo di ViewModel da aggiungere. Limitato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

Registrare visualizzazioni e ViewModel con il percorso della Shell

I metodi seguenti consentono di registrare View e ViewModel in .NET MAUI IServiceCollection e di registrare esplicitamente una route per la View nel sistema di routing di .NET MAUI Shell.

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

Aggiunge una View con ambito del tipo specificato in TView e un ViewModel del tipo TViewModel alla raccolta IServiceCollection specificata e registra la View per la navigazione di Shell alla route specificata nel parametro route. È possibile specificare un oggetto facoltativo RouteFactory per controllare la costruzione della visualizzazione.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement

TViewModel

Tipo di ViewModel da aggiungere. Limitato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

route Stringa

La route verso cui è possibile eseguire la navigazione della vista all'interno di .NET MAUI Shell.

factory (optional) RouteFactory

Oggetto RouteFactory per controllare la costruzione della visualizzazione.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

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

Aggiunge una View singleton del tipo specificato in TView e un ViewModel del tipo specificato in TViewModel alla raccolta IServiceCollection specificata e registra la View per la navigazione di Shell al percorso specificato nel parametro route. È possibile specificare un oggetto facoltativo RouteFactory per controllare la costruzione della visualizzazione.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement

TViewModel

Tipo di ViewModel da aggiungere. Limitato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

route Stringa

La route a cui è possibile passare con la View all'interno di .NET MAUI Shell.

factory (optional) RouteFactory

Il RouteFactory per controllare la costruzione della View.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

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

Aggiunge una vista transitoria del tipo specificato in TView e una ViewModel del tipo TViewModel nella raccolta IServiceCollection specificata e registra la vista per la navigazione di Shell nel percorso specificato nel parametro route. È possibile specificare un oggetto facoltativo RouteFactory per controllare la costruzione della visualizzazione.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement

TViewModel

Tipo di ViewModel da aggiungere. Limitato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

route Stringa

Route a cui è possibile spostarsi la vista all'interno di .NET MAUI Shell.

factory (optional) RouteFactory

Il RouteFactory per controllare la costruzione della View.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

Registrare la visualizzazione popup e il modello di visualizzazione

I metodi seguenti consentono di registrare visualizzazioni basate su popup e ViewModels all'interno del .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Aggiunge una visualizzazione temporanea del tipo specificato in TPopupView e ViewModel del tipo TPopupViewModel all'oggetto IServiceCollection specificato.

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

Parametri di tipo

Tview

Tipo di visualizzazione da aggiungere. Vincolato a Popup

TViewModel

Tipo di ViewModel da aggiungere. Vincolato ai tipi di riferimento che implementano INotifyPropertyChanged

Parametri

services IServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Restituzioni

IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.

API

È possibile trovare il codice sorgente per ServiceCollectionExtensions nel repository .NET MAUI Community Toolkit GitHub.