Compartir a través de


ServiceCollectionExtensions

ServiceCollectionExtensions proporciona una serie de métodos de extensión que simplifican el registro de vistas y sus ViewModels asociados dentro de .NET MAUI IServiceCollection.

ServiceCollectionExtensions se puede encontrar en el espacio de nombres de CommunityToolkit.Maui, por lo que basta con agregar la siguiente línea para empezar:

using CommunityToolkit.Maui;

NOTE: Estos métodos de extensión solo registran view y ViewModels en IServiceCollection. Los desarrolladores siguen siendo responsables de asignar la instancia insertada de ViewModel a la propiedad BindingContext de la vista.

Además, estos métodos de extensión asumen que hay una relación uno a uno entre View y ViewModel y que ambos comparten la misma duración. Los desarrolladores deberán volver a registrar vistas y ViewModels individualmente para especificar duraciones diferentes o para controlar escenarios en los que varias vistas usan el mismo ViewModel.

Registro de Vistas y ViewModels

Los métodos siguientes permiten registrar Vistas y ViewModels en de IServiceCollection .NET MAUI.

AddScoped<TView, TViewModel>(IServiceCollection)

Agrega una vista con ámbito del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a BindableObject

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

AddSingleton<TView, TViewModel>(IServiceCollection)

Agrega una vista singleton del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a BindableObject

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

AddTransient<TView, TViewModel>(IServiceCollection)

Agrega una vista transitoria del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a BindableObject

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

Registro de Vistas y ViewModels con ruta Shell

Los métodos siguientes le permiten registrar Vistas y ViewModels en IServiceCollection de .NET MAUI y registrar explícitamente una ruta a la vista en el enrutamiento de Shell de .NET MAUI.

AddScopedWithShellRoute<TView, TViewModel>(servicios, ruta, fábrica)

Agrega una vista con ámbito del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado y registra la vista para la navegación de Shell en la ruta especificada en el parámetro ruta. Se puede proporcionar un RouteFactory opcional para controlar la construcción de la vista.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a NavigableElement

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

routestring

Ruta a la que se puede navegar en la Vista dentro del Shell de .NET MAUI.

factory (optional) RouteFactory

RouteFactory para controlar la construcción de la vista.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

AddSingletonWithShellRoute<TView, TViewModel>(servicios, ruta, fábrica)

Agrega una vista singleton del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado y registra la vista para la navegación de Shell en la ruta especificada en el parámetro ruta. Se puede proporcionar un RouteFactory opcional para controlar la construcción de la vista.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a NavigableElement

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

routestring

Ruta a la que se puede navegar en la Vista dentro del Shell de .NET MAUI.

factory (optional) RouteFactory

RouteFactory para controlar la construcción de la vista.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

AddTransientWithShellRoute<TView, TViewModel>(servicios, ruta, fábrica)

Agrega una vista transitoria del tipo especificado en TView y ViewModel del tipo TViewModel al IServiceCollection especificado y registra la vista para la navegación de Shell en la ruta especificada en el parámetro ruta. Se puede proporcionar un RouteFactory opcional para controlar la construcción de la vista.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a NavigableElement

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

routestring

Ruta a la que se puede navegar en la Vista dentro del Shell de .NET MAUI.

factory (optional) RouteFactory

RouteFactory para controlar la construcción de la vista.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

Registrar vista emergente y modelo de vista

Los métodos siguientes permiten registrar Vistas y ViewModels basadas en elementos emergentes en IServiceCollection de .NET MAUI.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Agrega una vista transitoria del tipo especificado en TPopupView y ViewModel del tipo TPopupViewModel al IServiceCollection especificado.

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

Parámetros de tipo

TView

Tipo de vista que se va a agregar. Restringido a Popup

TViewModel

Tipo de ViewModel que se va a agregar. Restringido a los tipos de referencia que implementan INotifyPropertyChanged

Parámetros

servicesIServiceCollection

IServiceCollection para agregar la Vista y ViewModel.

Devoluciones

IServiceCollection Una referencia a esta instancia después de que se haya completado la operación.

API

Puede encontrar el código fuente de ServiceCollectionExtensions en el repositorio de GitHub del Kit de herramientas de la comunidad de .NET MAUI.