ServiceCollectionExtensions
ServiceCollectionExtensions
fornece uma série de métodos de extensão que simplificam o registro de exibições e seus ViewModels associados no IServiceCollection
do .NET MAUI.
ServiceCollectionExtensions
pode ser encontrado no namespace CommunityToolkit.Maui
, portanto, basta adicionar a seguinte linha para começar:
using CommunityToolkit.Maui;
OBSERVAÇÃO: esses métodos de extensão registram apenas a exibição e ViewModels no
IServiceCollection
. Os desenvolvedores ainda são responsáveis por atribuir a instância injetada do ViewModel à propriedadeBindingContext
da exibição.Além disso, esses métodos de extensão pressupõem que há uma relação um para um entre exibição e ViewModel e que ambos compartilham o mesmo tempo de vida. Os desenvolvedores precisarão reverter para o registro de exibições e ViewModels individualmente para especificar tempos de vida diferentes ou para lidar com cenários em que várias exibições usam o mesmo ViewModel.
Registrar exibições e ViewModels
Os métodos a seguir permitem que você registre exibições e ViewModels no IServiceCollection
do .NET MAUI.
AddScoped<TView, TViewModel>(IServiceCollection)
Adiciona uma exibição com escopo do tipo especificado em TView e ViewModel do tipo TViewModel ao 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
O tipo de exibição a ser adicionado. Restrito a BindableObject
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
AddSingleton<TView, TViewModel>(IServiceCollection)
Adiciona uma exibição singleton do tipo especificado em TView e ViewModel do tipo TViewModel ao 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
O tipo de exibição a ser adicionado. Restrito a BindableObject
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
AddTransient<TView, TViewModel>(IServiceCollection)
Adiciona uma exibição transitória do tipo especificado em TView e ViewModel do tipo TViewModel ao 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
O tipo de exibição a ser adicionado. Restrito a BindableObject
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
Registrar exibições e ViewModels com a rota do Shell
Os métodos a seguir permitem que você registre exibições e ViewModels no IServiceCollection
do .NET MAUI e registre explicitamente uma rota para a exibição no roteamento do Shell do .NET MAUI.
AddScopedWithShellRoute<TView, TViewModel>(serviços, rota, fábrica)
Adiciona uma exibição com escopo do tipo especificado em TView e ViewModel do tipo TViewModel ao IServiceCollection especificado e registra a exibição de navegação do Shell na rota especificada no parâmetro de rota. Um RouteFactory
opcional pode ser fornecido para controlar a construção da exibição.
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 de exibição a ser adicionado. Restrito a NavigableElement
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
route
cadeia de caracteres
A rota para a qual a exibição pode navegar no Shell do .NET MAUI.
factory (optional)
RouteFactory
O RouteFactory
para controlar a construção da exibição.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
AddSingletonWithShellRoute<TView, TViewModel>(serviços, rota, fábrica)
Adicionar uma exibição singleton do tipo especificado em TView e ViewModel do tipo TViewModel ao IServiceCollection especificado e registra a exibição de navegação do Shell na rota especificada no parâmetro de rota. Um RouteFactory
opcional pode ser fornecido para controlar a construção da exibição.
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 de exibição a ser adicionado. Restrito a NavigableElement
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
route
cadeia de caracteres
A rota para a qual a exibição pode navegar no Shell do .NET MAUI.
factory (optional)
RouteFactory
O RouteFactory
para controlar a construção da exibição.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
AddTransientWithShellRoute<TView, TViewModel>(serviços, rota, fábrica)
Adiciona uma exibição transitória do tipo especificado em TView e ViewModel do tipo TViewModel ao IServiceCollection especificado e registra a exibição de navegação do Shell na rota especificada no parâmetro de rota. Um RouteFactory
opcional pode ser fornecido para controlar a construção da exibição.
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 de exibição a ser adicionado. Restrito a NavigableElement
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
route
cadeia de caracteres
A rota para a qual a exibição pode navegar no Shell do .NET MAUI.
factory (optional)
RouteFactory
O RouteFactory
para controlar a construção da exibição.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
Registrar a exibição pop-up e o modelo de exibição
Os métodos a seguir permitem que você registre exibições baseadas em pop-up e ViewModels no IServiceCollection
do .NET MAUI.
AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)
Adiciona uma exibição transitória do tipo especificado em TPopupView e ViewModel do tipo TPopupViewModel ao 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
O tipo de exibição a ser adicionado. Restrito a Popup
TViewModel
O tipo de ViewModel a ser adicionado. Restrito a tipos de referência que implementam INotifyPropertyChanged
Parâmetros
services
IServiceCollection
O IServiceCollection ao qual adicionar a exibição e o ViewModel.
Retornos
IServiceCollection Uma referência a essa instância após a conclusão da operação.
API
O código-fonte do ServiceCollectionExtensions
pode ser encontrado no repositório GitHub do .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit