Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ServiceCollectionExtensions bieten eine Reihe von Erweiterungsmethoden, die das Registrieren von Ansichten und der zugehörigen ViewModels innerhalb der .NET MAUI IServiceCollection vereinfachen.
Das ServiceCollectionExtensions finden Sie im Namespace CommunityToolkit.Maui, fügen Sie also einfach die folgende Zeile hinzu, um loszulegen:
using CommunityToolkit.Maui;
HINWEIS: Diese Erweiterungsmethoden registrieren nur die Views und ViewModels in
IServiceCollection. Entwickler sind weiterhin dafür verantwortlich, die eingefügte Instanz des ViewModel derBindingContextEigenschaft der Ansicht 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 wieder dazu übergehen, Ansichten und ViewModels einzeln zu registrieren, um unterschiedliche Lebenszyklen festzulegen oder Fälle abzudecken, in denen mehrere Ansichten dasselbe ViewModel verwenden.
Registrierung von Views und ViewModels
Mit den folgenden Methoden können Sie Ansichten und ViewModels im .NET MAUI IServiceCollection registrieren.
AddScoped<TView, TViewModel>(IServiceCollection)
Fügt der angegebenen IServiceCollection eine bereichsgebundene View vom Typ TView und ein ViewModel vom Typ TViewModel 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 Ansicht. Eingeschrä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.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
AddSingleton<TView, TViewModel>(IServiceCollection)
Fügt der angegebenen IServiceCollection eine Singleton-Ansicht des Typs TView und ein ViewModel des Typs TViewModel 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 Ansicht. Eingeschränkt auf BindableObject
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der die View und das ViewModel hinzugefügt werden sollen.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
AddTransient<TView, TViewModel>(IServiceCollection)
Fügt der angegebenen IServiceCollection eine transiente Ansicht vom Typ TView und ein ViewModel vom Typ TViewModel 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 Ansicht. Eingeschränkt auf BindableObject
TViewModel
Der Typ des hinzuzufügenden ViewModels. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, zu der die View und das ViewModel hinzugefügt werden.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
Ansichten und ViewModels mit der Shell-Route registrieren
Mit den folgenden Methoden können Sie Views und ViewModels innerhalb von .NET MAUI IServiceCollection registrieren und im .NET MAUI Shell-Routing explizit eine Route für die View registrieren.
AddScopedWithShellRoute<TView, TViewModel>(services, route, factory)
Fügt eine bereichsbezogene Ansicht des typs TView und ViewModel des Typs "TViewModel" zur angegebenen IServiceCollection hinzu und registriert die Ansicht für die Shell-Navigation an der im Routenparameter angegebenen Route. Ein optionales RouteFactory kann zur Steuerung der Erstellung der Ansicht angegeben 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 Ansicht. Eingeschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModels. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection , der das View- und ViewModel-Objekt hinzugefügt werden soll.
route
Schnur
Die Route, zu der die Ansicht innerhalb .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Das RouteFactory zur Steuerung der Ansichtserstellung.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
AddSingletonWithShellRoute<TView, TViewModel>(services, route, factory)
Fügt der angegebenen IServiceCollection eine Singletonansicht des Typs TView und ein ViewModel des Typs TViewModel hinzu und registriert die Ansicht für die Shell-Navigation unter der im Parameter route angegebenen Route. Ein optionales RouteFactory kann angegeben werden, um die Erstellung der Ansicht zu steuern.
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 Ansicht. Eingeschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModels. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.
route
Schnur
Die Route, zu der die Ansicht innerhalb .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Das RouteFactory zur Steuerung der View-Konstruktion.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
AddTransientWithShellRoute<TView, TViewModel>(services, route, factory)
Fügt der angegebenen IServiceCollection eine transiente Ansicht des Typs TView und ein ViewModel vom Typ TViewModel hinzu und registriert die Ansicht für die Shell-Navigation unter der im Parameter route angegebenen Route. Ein optionales RouteFactory kann angegeben werden, um die Erstellung der Ansicht zu steuern.
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 Ansicht. Eingeschränkt auf NavigableElement
TViewModel
Der Typ des hinzuzufügenden ViewModels. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection zum Hinzufügen von View und ViewModel.
route
Schnur
Die Route, zu der die Ansicht innerhalb der .NET MAUI Shell navigiert werden kann.
factory (optional)
RouteFactory
Das RouteFactory zur Steuerung der View-Konstruktion.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
Registrieren der Popupansicht und des Ansichtsmodells
Mit den folgenden Methoden können Sie Popupbasierte Ansichten und ViewModels im .NET MAUI IServiceCollection registrieren.
AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)
Fügt der angegebenen IServiceCollection eine transiente Ansicht des in TPopupView angegebenen Typs und ein 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 Ansicht. Eingeschränkt auf Popup
TViewModel
Der Typ des hinzuzufügenden ViewModel. Beschränkt auf Referenztypen, die INotifyPropertyChanged implementieren
Parameter
services
IServiceCollection
Die IServiceCollection, der die View und das ViewModel hinzugefügt werden sollen.
Rücklieferungen
IServiceCollection Ein Verweis auf diese Instanz, nachdem der Vorgang abgeschlossen wurde.
API
Sie finden den Quellcode für ServiceCollectionExtensions im .NET MAUI Community Toolkit GitHub Repository.
.NET MAUI Community Toolkit