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 der BindingContext-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

servicesIServiceCollection

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

servicesIServiceCollection

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

servicesIServiceCollection

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

servicesIServiceCollection

Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.

routestring

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

servicesIServiceCollection

Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.

routestring

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

servicesIServiceCollection

Die IServiceCollection, der View und ViewModel hinzugefügt werden sollen.

routestring

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 IServiceCollectionregistrieren.

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

servicesIServiceCollection

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.