ServiceCollectionExtensions

O ServiceCollectionExtensions fornece uma série de métodos de extensão que simplificam o registo das Vistas e dos seus ViewModelos associados dentro do .NET MAUI IServiceCollection.

O ServiceCollectionExtensions pode ser encontrado no espaço de nomes CommunityToolkit.Maui, por isso, basta adicionar a seguinte linha para começar:

using CommunityToolkit.Maui;

NOTA: Estes métodos de extensão apenas registam a View e os ViewModels no IServiceCollection. Os programadores continuam responsáveis por atribuir a instância injetada do ViewModel à propriedade BindingContext da View.

Além disso, estes métodos de extensão assumem que existe uma relação um a um entre o View e o ViewModel e que ambos partilham a mesma vida útil. Os programadores terão de voltar a registar Views e ViewModels individualmente para especificar tempos de vida diferentes ou para lidar com cenários em que múltiplas Views usam o mesmo ViewModel.

Registo de Vistas e Modelos de Visualização

Os métodos seguintes permitem-lhe registar Views e ViewModels dentro do .NET MAUI IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

Adiciona uma Vista com âmbito do tipo especificado em TView e um ViewModel do tipo TViewModel à IServiceCollection especificada.

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

O tipo da Vista a acrescentar. Restrito a BindableObject

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection onde adicionar View e ViewModel.

Devoluções

IServiceCollection Uma referência a esta instância depois de a operação estar concluída.

AddSingleton<TView, TViewModel>(IServiceCollection)

Adiciona uma View singleton do tipo especificado em TView e uma ViewModel do tipo TViewModel à IServiceCollection especificada.

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

O tipo da Vista a acrescentar. Restrito a BindableObject

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection onde adicionar View e ViewModel.

Devoluções

IServiceCollection Uma referência a esta instância depois de a operação estar concluída.

AddTransient<TView, TViewModel>(IServiceCollection)

Adiciona uma View transitória do tipo especificado em TView e uma ViewModel do tipo TViewModel na IServiceCollection especificada.

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

O tipo da Vista a acrescentar. Restrito a BindableObject

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection onde adicionar View e ViewModel.

Devoluções

IServiceCollection Uma referência a esta instância depois de a operação estar concluída.

Registe Views e ViewModels na rota Shell

Os métodos seguintes permitem-lhe registar Views e ViewModels no .NET MAUI IServiceCollection e registar explicitamente uma rota para a View no encaminhamento do .NET MAUI Shell.

AddScopedWithShellRoute<TView, TViewModel>(serviços, rota, fábrica)

Adiciona uma Vista com âmbito do tipo especificado em TView e ViewModel do tipo TViewModel à IServiceCollection especificada e regista a vista para navegação Shell na rota especificada no parâmetro da rota. Pode ser disponibilizado um opcional RouteFactory para controlar a construção da 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

O tipo da Vista a acrescentar. Restrito a NavigableElement

TViewModel

O tipo de ViewModel a adicionar. Restrito a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection à qual adicionar a View e a ViewModel.

route cadeia

A rota para a qual a Vista pode ser navegada dentro do .NET MAUI Shell.

factory (optional) RouteFactory

O RouteFactory para controlar a construção da Vista.

Devoluções

IServiceCollection Uma referência a esta instância após a conclusão da operação.

AddSingletonWithShellRoute<TView, TViewModel> (serviços, rota, fábrica)

Adiciona uma vista singleton do tipo especificado em TView e a ViewModel do tipo TViewModel à IServiceCollection especificada e regista a vista para navegação no Shell na rota especificada no parâmetro route. Pode ser disponibilizado um opcional RouteFactory para controlar a construção da 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

O tipo da Vista a acrescentar. Restrito a NavigableElement

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection à qual adicionar a View e o ViewModel.

route cadeia de caracteres

A rota para a qual é possível navegar na View no .NET MAUI Shell.

factory (optional) RouteFactory

O RouteFactory para controlar a construção da Vista.

Devoluções

IServiceCollection Uma referência a esta instância após a conclusão da operação.

AddTransientWithShellRoute<TView, TViewModel>(serviços, rota, fábrica)

Adiciona uma Vista transitória do tipo especificado em TView e ViewModel do tipo TViewModel à IServiceCollection especificada e regista a vista para navegação Shell na rota especificada no parâmetro de rota. Pode ser disponibilizado um opcional RouteFactory para controlar a construção da 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

O tipo da Vista a acrescentar. Restrito a NavigableElement

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection onde adicionar View e ViewModel.

route cadeia de caracteres

A rota para a qual a Vista pode ser navegada dentro do .NET MAUI Shell.

factory (optional) RouteFactory

O RouteFactory para controlar a construção da Vista.

Devoluções

IServiceCollection Uma referência a esta instância depois de a operação estar concluída.

Registar Vista Pop-up e Modelo de Vista

Os métodos seguintes permitem-lhe registar Vistas e Modelos de Visualização baseados em Popup dentro do .NET MAUI IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

Adiciona uma View transitória do tipo especificado em TPopupView e uma ViewModel do tipo TPopupViewModel à IServiceCollection especificada.

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

O tipo da Vista a acrescentar. Restrito a Popup

TViewModel

O tipo de ViewModel a adicionar. Limitado a tipos de referência que implementam INotifyPropertyChanged

Parâmetros

services Coleção IService

A IServiceCollection onde adicionar View e ViewModel.

Devoluções

IServiceCollection Uma referência a esta instância depois de a operação estar concluída.

API

Você pode encontrar o código-fonte para ServiceCollectionExtensions no repositório GitHub do .NET MAUI Community Toolkit.