Partager via


ServiceCollectionExtensions

Les ServiceCollectionExtensions fournissent une série de méthodes d’extension qui simplifient l’enregistrement des vues et de leurs ViewModels associés dans la IServiceCollection .NET MAUI.

Les ServiceCollectionExtensions se trouvent sous l’espace de noms CommunityToolkit.Maui. Il vous suffit donc d’ajouter la ligne suivante pour démarrer :

using CommunityToolkit.Maui;

REMARQUE : ces méthodes d’extension inscrivent uniquement les vues et ViewModels dans la IServiceCollection. Les développeurs restent responsables de l’affectation de l’instance de ViewModel injectée à la propriété de vue BindingContext.

En outre, ces méthodes d’extension supposent qu’il existe une relation un-à-un entre la vue et le ViewModel, et que tous deux partagent la même durée de vie. Les développeurs doivent restaurer l’inscription des vues et des ViewModels de façon individuelle afin de spécifier des durées de vie différentes ou de gérer des scénarios dans lesquels plusieurs vues utilisent le même ViewModel.

Inscription des vues et ViewModels

Les méthodes suivantes vous permettent d’inscrire des vues et des ViewModels dans la IServiceCollection .NET MAUI.

AddScoped<TView, TViewModel>(IServiceCollection)

Ajoute une vue délimitée du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à la IServiceCollection spécifiée.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à BindableObject

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

AddSingleton<TView, TViewModel>(IServiceCollection)

Ajoute une vue singleton du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à la IServiceCollection spécifiée.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à BindableObject

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

AddTransient<TView, TViewModel>(IServiceCollection)

Ajoute une vue transitoire du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à la IServiceCollection spécifiée.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à BindableObject

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

Inscription des vues et ViewModels avec le routage d’interpréteur de commandes

Les méthodes suivantes vous permettent d’inscrire des vues et des ViewModels dans la IServiceCollection .NET MAUI. Elles permettent également d’inscrire explicitement un itinéraire vers la vue dans le routage d’interpréteur de commandes .NET MAUI.

AddScopedWithShellRoute<TView, TViewModel>(services, itinéraire, fabrique)

Ajoute une vue délimitée du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à l’IServiceCollection spécifiée. Inscrit également la vue pour la navigation par interpréteur de commandes sur l’itinéraire spécifié dans le paramètre de routage. Une RouteFactory facultative peut être fournie pour contrôler la construction de vue.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à NavigableElement

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

routestring

Itinéraire vers lequel la vue peut être acheminée dans l’interpréteur de commandes .NET MAUI.

factory (optional) RouteFactory

La RouteFactory pour contrôler la construction de vue.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

AddSingletonWithShellRoute<TView, TViewModel>(services, itinéraire, fabrique)

Ajoute une vue singleton du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à l’IServiceCollection spécifiée. Inscrit également la vue pour la navigation par interpréteur de commandes sur l’itinéraire spécifié dans le paramètre de routage. Une RouteFactory facultative peut être fournie pour contrôler la construction de vue.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à NavigableElement

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

routestring

Itinéraire vers lequel la vue peut être acheminée dans l’interpréteur de commandes .NET MAUI.

factory (optional) RouteFactory

La RouteFactory pour contrôler la construction de vue.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

AddTransientWithShellRoute<TView, TViewModel>(services, itinéraire, fabrique)

Ajoute une vue transitoire du type spécifié dans TView ainsi qu’un ViewModel du type TViewModel à l’IServiceCollection spécifiée. Inscrit également la vue pour la navigation par interpréteur de commandes sur l’itinéraire spécifié dans le paramètre de routage. Une RouteFactory facultative peut être fournie pour contrôler la construction de vue.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à NavigableElement

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

routestring

Itinéraire vers lequel la vue peut être acheminée dans l’interpréteur de commandes .NET MAUI.

factory (optional) RouteFactory

La RouteFactory pour contrôler la construction de vue.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

Inscrire la vue et le ViewModel contextuels

Les méthodes suivantes vous permettent d’inscrire des vues et des ViewModels basés sur des fenêtres contextuelles dans la IServiceCollection .NET MAUI.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Ajoute une vue transitoire du type spécifié dans TPopupView ainsi qu’un ViewModel du type TPopupViewModel à la IServiceCollection spécifiée.

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

Paramètres de type

TView

Type de vue à ajouter. Limité à Popup

TViewModel

Type de ViewModel à ajouter. Limité aux types de références qui implémentent INotifyPropertyChanged

Paramètres

servicesIServiceCollection

L’IServiceCollection à laquelle ajouter la vue et le ViewModel.

Retours

IServiceCollection Une référence à cette instance une fois l’opération terminée.

API

Vous pouvez trouver le code source deServiceCollectionExtensions sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.