Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los ServiceCollectionExtensions proporcionan una serie de métodos de extensión que simplifican el registro de Views y sus ViewModels asociados en .NET MAUI IServiceCollection.
Puedes encontrar ServiceCollectionExtensions en el espacio de nombres CommunityToolkit.Maui, así que solo tienes que añadir la siguiente línea para comenzar:
using CommunityToolkit.Maui;
NOTA: Estos métodos de extensión solo registran la View y los ViewModels en el
IServiceCollection. Los desarrolladores siguen siendo responsables de asignar la instancia insertada de ViewModel a laBindingContextpropiedad 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.
Registrar vistas y modelos de vista
Los siguientes métodos permiten registrar Views y ViewModels dentro de .NET MAUI IServiceCollection.
AddScoped<TView, TViewModel>(IServiceCollection)
Agrega una vista de ámbito del tipo especificado en TView y un ViewModel del tipo TViewModel a la instancia de 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
Tipo de la 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
La IServiceCollection a la que se agregarán View y ViewModel.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
AddSingleton<TView, TViewModel>(IServiceCollection)
Agrega una vista de instancia única del tipo especificado en TView y un ViewModel del tipo TViewModel a la colección 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
Tipo de la 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
La IServiceCollection a la que se agregarán la vista y el modelo de vista.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
AddTransient<TView, TViewModel>(IServiceCollection)
Agrega una vista transitoria del tipo especificado en TView y un 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
El tipo de View que se va a añadir. Restringido a BindableObject
TViewModel
Tipo de ViewModel que se va a agregar. Restringido a tipos de referencia que implementan INotifyPropertyChanged
Parámetros
services
IServiceCollection
La IServiceCollection a la que se agregarán la View y el ViewModel.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
Registrar vistas y ViewModels con la ruta de shell
Los métodos siguientes permiten registrar vistas y modelos de vista en .NET MAUI IServiceCollection y registrar explícitamente una ruta para la vista en el enrutamiento de .NET MAUI Shell.
AddScopedWithShellRoute<TView, TViewModel>(services, route, factory)
Agrega una vista de ámbito del tipo especificado en TView y un ViewModel del tipo TViewModel a la IServiceCollection especificada, y registra la vista para la navegación en Shell en la ruta especificada en el parámetro route. Se puede proporcionar una opción RouteFactory 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 del View que se va a añadir. 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
La IServiceCollection a la que se van a agregar la View y el ViewModel.
route
string
Ruta a la que se puede navegar la vista en .NET MAUI Shell.
factory (optional)
RouteFactory
El RouteFactory para controlar la construcción de View.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
AddSingletonWithShellRoute<TView, TViewModel>(services, route, factory)
Agrega una vista singleton del tipo especificado en TView y un ViewModel del tipo TViewModel a la IServiceCollection especificada, y registra la vista para la navegación en Shell en la ruta especificada en el parámetro route. Se puede proporcionar una opción RouteFactory 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 la 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
La IServiceCollection a la que se van a agregar la View y el ViewModel.
route
string
Ruta a la que se puede navegar dentro de .NET MAUI Shell para acceder a la vista.
factory (optional)
RouteFactory
El RouteFactory para controlar la construcción de la vista.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
AddTransientWithShellRoute<TView, TViewModel>(services, route, factory)
Agrega una vista transitoria del tipo especificado en TView y un ViewModel del tipo TViewModel a la colección IServiceCollection especificada, y registra la vista para la navegación en Shell en la ruta especificada en el parámetro route. Se puede proporcionar una opción RouteFactory 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 la 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
La IServiceCollection a la que se van a agregar la View y el ViewModel.
route
string
Ruta a la que se puede navegar la vista en .NET MAUI Shell.
factory (optional)
RouteFactory
El RouteFactory para controlar la construcción de View.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
Registrar la ventana emergente y el modelo de vista
Los siguientes métodos le permiten registrar vistas basadas en Popup y ViewModels dentro de .NET MAUI IServiceCollection.
AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)
Agrega una vista transitoria del tipo especificado por TPopupView y un modelo de vista del tipo TPopupViewModel a la 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
Tipo de la vista que se va a añadir. 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
La IServiceCollection a la que se van a agregar la View y el ViewModel.
Devoluciones
IServiceCollection Referencia a esta instancia una vez completada la operación.
API
Puede encontrar el código fuente de ServiceCollectionExtensions en el repositorio .NET MAUI Community Toolkit GitHub.
.NET MAUI Community Toolkit