Condividi tramite


ServiceCollectionExtensions

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

È ServiceCollectionExtensions possibile trovare sotto lo CommunityToolkit.Maui spazio dei nomi in modo da aggiungere semplicemente la riga seguente per iniziare:

using CommunityToolkit.Maui;

NOTA: questi metodi di estensione registrano solo view e ViewModels in IServiceCollection. Gli sviluppatori sono ancora responsabili dell'assegnazione dell'istanza inserita di ViewModel alla BindingContext proprietà della visualizzazione.

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.

Registrare visualizzazioni e ViewModels

I metodi seguenti consentono di registrare Views e ViewModels all'interno di .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

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Valori restituiti

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

AddSingleton<TView, TViewModel>(IServiceCollection)

Aggiunge una visualizzazione singleton 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.AddSingleton<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

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Valori restituiti

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. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Valori restituiti

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

Registrare viste e ViewModels con la route della shell

I metodi seguenti consentono di registrare Visualizzazioni e ViewModels all'interno di .NET MAUI IServiceCollection e registrare in modo esplicito una route alla visualizzazione all'interno del routing della shell MAUI .NET.

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

Aggiunge una visualizzazione con ambito del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di 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. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

routestring

Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.

factory (optional) RouteFactory

Oggetto RouteFactory per controllare la costruzione della visualizzazione.

Valori restituiti

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

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

Aggiunge una visualizzazione singleton del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di 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. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

routestring

Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.

factory (optional) RouteFactory

Oggetto RouteFactory per controllare la costruzione della visualizzazione.

Valori restituiti

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

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

Aggiunge una visualizzazione temporanea del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di 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. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

routestring

Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.

factory (optional) RouteFactory

Oggetto RouteFactory per controllare la costruzione della visualizzazione.

Valori restituiti

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 viste basate su Popup e ViewModels all'interno di .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 all'implementazione dei tipi di riferimento INotifyPropertyChanged

Parametri

servicesIServiceCollection

IServiceCollection a cui aggiungere View e ViewModel.

Valori restituiti

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

API

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