ServiceCollectionExtensions
ServiceCollectionExtensions
bieten eine Reihe von Erweiterungsmethoden, die das Registrieren von Ansichten und deren zugeordneten ViewModels innerhalb der .NET MAUI-IServiceCollection
vereinfachen.
Die ServiceCollectionExtensions
finden Sie unter dem CommunityToolkit.Maui
-Namespace, damit Sie einfach die folgende Zeile hinzufügen, um zu beginnen:
using CommunityToolkit.Maui;
HINWEIS: Diese Erweiterungsmethoden registrieren nur die View und ViewModels in der
IServiceCollection
. Entwickler sind weiterhin dafür verantwortlich, die eingefügte Instanz des ViewModel derBindingContext
-Eigenschaft der View zuzuweisen.Darüber hinaus gehen diese Erweiterungsmethoden davon aus, dass zwischen View und ViewModel eine 1:1-Beziehung besteht und beide die gleiche Lebensdauer aufweisen. Entwickler müssen die Registrierung von View und ViewModels einzeln wiederherstellen, um unterschiedliche Lebensdauern anzugeben oder Szenarien zu behandeln, in denen mehrere Views dasselbe ViewModel verwenden.
Registrieren von Views und ViewModels
Mit den folgenden Methoden können Sie Views und ViewModels innerhalb der .NET MAUI IServiceCollection
registrieren.
AddScoped<TView, TViewModel>(IServiceCollection)
Fügt eine bereichsbezogene View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu.
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>();
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf BindableObject
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
AddSingleton<TView, TViewModel>(IServiceCollection)
Fügt eine Singleton-View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu.
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>();
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf BindableObject
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
AddTransient<TView, TViewModel>(IServiceCollection)
Fügt eine vorübergehende View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu.
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>();
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf BindableObject
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
Registrieren von Ansichten und ViewModels mit Shell Route
Mit den folgenden Methoden können Sie Views und ViewModels innerhalb der .NET MAUI IServiceCollection
registrieren und explizit eine Route zum View in .NET MAUI Shell-Routing registrieren.
AddScopedWithShellRoute<TView, TViewModel>(Services, Route, Factory)
Fügt eine bereichsbezogene View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu und registriert die View für die Shell-Navigation an der im Routenparameter angegebenen Route. Eine optionale RouteFactory
kann zum Steuern der View-Konstruktion bereitgestellt werden.
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");
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
route
string
Die Route, zu der die View in .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Die RouteFactory
zur Steuerung der View-Konstruktion.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
AddSingletonWithShellRoute<TView, TViewModel>(Services, Route, Factory)
Fügt eine Singleton-View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu und registriert die View für die Shell-Navigation an der im Routenparameter angegebenen Route. Eine optionale RouteFactory
kann zum Steuern der View-Konstruktion bereitgestellt werden.
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");
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
route
string
Die Route, zu der die View in .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Die RouteFactory
zur Steuerung der View-Konstruktion.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
AddTransientWithShellRoute<TView, TViewModel>(Services, Route, Factory)
Fügt eine vorübergehende View des Typs TView und ViewModel des Typs TViewModel zur angegebenen IServiceCollection hinzu und registriert die View für die Shell-Navigation an der im Routenparameter angegebenen Route. Eine optionale RouteFactory
kann zum Steuern der View-Konstruktion bereitgestellt werden.
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");
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
route
string
Die Route, zu der die View in .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Die RouteFactory
zur Steuerung der View-Konstruktion.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
Registrieren der Popupansicht und des Ansichtsmodells
Mit den folgenden Methoden können Sie Popup-basierten Views und ViewModels innerhalb der .NET MAUI IServiceCollection
registrieren.
AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)
Fügt der angegebenen IServiceCollection eine vorübergehende Ansicht des Typs TPopupView und ViewModel des Typs TPopupViewModel hinzu.
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>();
}
}
Typparameter
TView
Der Typ der hinzuzufügenden View. Beschränkt auf Popup
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged
implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
Gibt zurück
IServiceCollection Ein Verweis auf diese Instanz nach Abschluss des Vorgangs.
API
Sie finden den Quellcode für ServiceCollectionExtensions
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit