ServiceCollectionExtensions

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