ServiceCollectionExtensions
Fornisce ServiceCollectionExtensions
una serie di metodi di estensione che semplificano la registrazione delle visualizzazioni e dei relativi viewModel associati all'interno di .NET MAUI IServiceCollection
.
È ServiceCollectionExtensions
possibile trovare sotto lo CommunityToolkit.Maui
spazio dei nomi in modo da aggiungere semplicemente la riga seguente per iniziare:
using CommunityToolkit.Maui;
NOTA: questi metodi di estensione registrano solo view e ViewModels in
IServiceCollection
. Gli sviluppatori sono ancora responsabili dell'assegnazione dell'istanza inserita di ViewModel allaBindingContext
proprietà della visualizzazione.Inoltre, questi metodi di estensione presuppongono che sia presente una relazione uno-a-uno tra View e ViewModel e che entrambi condividono la stessa durata. Gli sviluppatori dovranno ripristinare la registrazione di visualizzazioni e ViewModel singolarmente per specificare durate diverse o per gestire scenari in cui più visualizzazioni usano lo stesso ViewModel.
Registrare visualizzazioni e ViewModels
I metodi seguenti consentono di registrare Views e ViewModels all'interno di .NET MAUI IServiceCollection
.
AddScoped<TView, TViewModel>(IServiceCollection)
Aggiunge una visualizzazione con ambito del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato.
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>();
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a BindableObject
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
AddSingleton<TView, TViewModel>(IServiceCollection)
Aggiunge una visualizzazione singleton del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato.
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>();
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a BindableObject
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
AddTransient<TView, TViewModel>(IServiceCollection)
Aggiunge una visualizzazione temporanea del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato.
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>();
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a BindableObject
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
Registrare viste e ViewModels con la route della shell
I metodi seguenti consentono di registrare Visualizzazioni e ViewModels all'interno di .NET MAUI IServiceCollection
e registrare in modo esplicito una route alla visualizzazione all'interno del routing della shell MAUI .NET.
AddScopedWithShellRoute<TView, TViewModel>(services, route, factory)
Aggiunge una visualizzazione con ambito del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di route. È possibile specificare un oggetto facoltativo RouteFactory
per controllare la costruzione della visualizzazione.
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");
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
route
string
Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.
factory (optional)
RouteFactory
Oggetto RouteFactory
per controllare la costruzione della visualizzazione.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
AddSingletonWithShellRoute<TView, TViewModel>(services, route, factory)
Aggiunge una visualizzazione singleton del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di route. È possibile specificare un oggetto facoltativo RouteFactory
per controllare la costruzione della visualizzazione.
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");
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
route
string
Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.
factory (optional)
RouteFactory
Oggetto RouteFactory
per controllare la costruzione della visualizzazione.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
AddTransientWithShellRoute<TView, TViewModel>(services, route, factory)
Aggiunge una visualizzazione temporanea del tipo specificato in TView e ViewModel del tipo TViewModel all'oggetto IServiceCollection specificato e registra la visualizzazione per lo spostamento shell nella route specificata nel parametro di route. È possibile specificare un oggetto facoltativo RouteFactory
per controllare la costruzione della visualizzazione.
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");
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a NavigableElement
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
route
string
Route a cui è possibile esplorare la vista all'interno della shell MAUI .NET.
factory (optional)
RouteFactory
Oggetto RouteFactory
per controllare la costruzione della visualizzazione.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
Registrare la visualizzazione popup e il modello di visualizzazione
I metodi seguenti consentono di registrare viste basate su Popup e ViewModels all'interno di .NET MAUI IServiceCollection
.
AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)
Aggiunge una visualizzazione temporanea del tipo specificato in TPopupView e ViewModel del tipo TPopupViewModel all'oggetto IServiceCollection specificato.
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>();
}
}
Parametri di tipo
Tview
Tipo di visualizzazione da aggiungere. Vincolato a Popup
TViewModel
Tipo di ViewModel da aggiungere. Vincolato all'implementazione dei tipi di riferimento INotifyPropertyChanged
Parametri
services
IServiceCollection
IServiceCollection a cui aggiungere View e ViewModel.
Valori restituiti
IServiceCollection Riferimento a questa istanza dopo il completamento dell'operazione.
API
È possibile trovare il codice sorgente per ServiceCollectionExtensions
over nel repository GitHub di .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit