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 propiedadBindingContext
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
services
IServiceCollection
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
services
IServiceCollection
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
services
IServiceCollection
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
services
IServiceCollection
IServiceCollection para agregar la Vista y ViewModel.
route
string
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
services
IServiceCollection
IServiceCollection para agregar la Vista y ViewModel.
route
string
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
services
IServiceCollection
IServiceCollection para agregar la Vista y ViewModel.
route
string
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
services
IServiceCollection
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.
.NET MAUI Community Toolkit